Ich möchte einen Bild-Upload für meine Galerie schreiben. Um Bilder hochzuladen, muss man zunächst angeben um wie viele Bilder es sich handelt. Danach wird mittels PHP ein Formular mit der angegebenen Anzahl an Dateifeldern ausgegeben.
Der Code schaut so aus:
- Code: Select all
if ($_REQUEST["picchoose"]) {
// Variablen übernehmen
$stamp = $_REQUEST["stamp"];
$zahl = $_REQUEST["zahl"];
echo "<form name='form1' method='post' action='backend_operations.php' enctype='multipart/formdata'>";
// Ausgabe
for ($i=0;$i<$zahl;$i++) {
$fname = "file".$i;
echo $fname.": <input name='".$fname."' type='file' size='50'><br>";
}
echo "<input name='stamp' type='hidden' id='stamp' value='".$stamp."'><input name='zahl' type='hidden' id='zahl' value='".$zahl."'><input name='picsave' type='submit' id='picsave' value='Speichern'></form>";
}
Nachdem man auf "Speichern" geklickt hat passiert folgendes:
- Code: Select all
if ($_REQUEST["picsave"]) {
// Variable übernehmen
$stamp = $_REQUEST["stamp"];
$zahl = $_REQUEST["zahl"];
// Tabellen-Namen bestimmen
$table = "galerie".$stamp;
for ($i=0;$i<$zahl;$i++) {
$fname = "file".$i;
$file = $_FILES[$fname]["name"];
$picstamp = mktime();
// In Tabelle speichern
$save="insert ".$table." (stamp) values ('$picstamp')";
mysql_db_query("usr_s9web51_1",$save);
// Bild auf Server ablegen
move_uploaded_file($file, "../images/galerie/".$picstamp.".jpg");
// Dateirechte ändern
chmod("../images/galerie/".$picstamp.".jpg", 0777);
}
Wenn ich das Script ausführe gibt er mir diese Meldung aus:
Warning: chmod(): Unable to access ../images/galerie/1152624222.jpg in /var/www/htdocs/s9web51/html/backend/backend_operations.php on line 555
Warning: chmod(): No such file or directory in /var/www/htdocs/s9web51/html/backend/backend_operations.php on line 555
Die Bild-Datei liegt also nicht auf dem Server, allerdings werden die anderen Variablen in die Datenbank eingetragen.
$_FILES habe ich mir auch mit print_r($_FILES) ausgeben lassen, jedoch bekomme ich nur die Ausgabe: Array( )
Noch verwirrender finde ich, dass in einem anderen Backend-Upload-Bereich "$_FILES" problemlos funktioniert.
Falls ihr meine Php.ini sehen wollt: http://www.scribbleboard.de/phpinfo.php
Ich hoffe, dass ich mich nicht zu konfus ausgedrückt habe und das ihr mir helfen könnt.
ikaruz