Wie auf Bild hochladen und speichern Pfad zur Datenbank?
Habe ich eine Seite gefunden, wo einige Bilder werden gezeigt (Datenbank-getrieben). Hier ist der code von meinem gallery.php :
<ul id="portfolio-list" class="gallery">
<?php
$sql="select * from eikones ";
$res=mysql_query($sql);
$count=mysql_num_rows($res);
for ( $i = 0; $i < $count; ++$i )
{
$row = mysql_fetch_array( $res );
$co=$i+1;
if(isset($row[ "path" ]))
{
$path= $row[ "path" ];
}
if(isset($row[ "auxon" ]))
{
$auxon = $row[ "auxon" ];
}
if($_SESSION['role'] == "admin")
echo "<li class=\"pink\"><a href=\"$path\" rel=\"group1\" class=\"fancybox\" title=\"Προιόν \"><img src=\"$path\" alt=\"Pic\"></a></li>\n";
}
?>
</ul>
Nun möchte ich ein Formular wo ich in der Lage, um ein Bild hochzuladen. Ich versuche dies, aber es funktioniert nicht :
<form enctype="multipart/form-data" action="gallery.php" method="post" name="changer">
<input name="image" accept="image/jpeg" type="file">
<input value="Submit" type="submit">
</form>
<?php
include 'conf.php'; //database connect
if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) {
$tmpName = $_FILES['image']['tmp_name'];
$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
fclose($fp);
$query = "INSERT INTO eikones"; //table name = "eikones" and it has two columns named "auxon" and "path". The auxon is the id.
$query .= "(image) VALUES ('','$data')";
$results = mysql_query($query, $link) or die(mysql_error());
print "DONE";
}
else {
print "NO IMAGE SELECTED";
}
?>
Heißt es "KEIN BILD AUSGEWÄHLT" und nichts neues kommt in die Datenbank.
- Erstens, sagen Sie es auf, legen Sie zwei Werte, wenn nur die Angabe einer Spalte, um Sie in
- Würde das helfen : $insert = mysql_query("INSERT INTO eikones VALUES(",'$data')") anstatt 2 Zeilen ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach einigen Stunden fand ich eine Lösung. Es funktioniert. Zwar würde ich noch gerne finden eine zweite Lösung (nach dem code, den ich zuerst hier gepostet). Hier ist die zweite Lösung :
form Seite :
einfügen auf Datenbank-Seite :
Gibt es viele kleine Klassen, die Sie herunterladen können, um Ihre Bild-uploads. Hier ist etwas kleines habe ich nur codiert auf. Es erlaubt Ihnen, die Validierung für die Datei-Typ und Datei-Größe. Fühlen Sie sich frei, um einige private Methoden oder hartcodieren der geschützten Variablen im Konstruktor, wenn Sie wissen, Sie werden immer dasselbe sein. Vielleicht braucht es ein wenig Arbeit, aber Sie können entweder diese Klasse verwenden, oder ziehen Sie die bits, die Sie brauchen, um es zu tun prozedural. Verzeihen keine kleinen Fehler.
if (isset($_FILES['image']) && $_FILES['image']['size'] > 0)
. Ich empfehle brechen, dass in zwei if-Anweisungen und sehen, wenn es vorbei entweder von Ihnen. Oder Sie könnten nurvar_dump[$_FILES]
um zu sehen, was der browser sendet Sie.var_dump($_FILES);
zu sehen, was Sie bekommen aus dem browser?