Sven Rautenberg: Dateiupload geht, jedoch 0kb auf dem Server

Beitrag lesen

Moin!

hab mir ein script gemacht:

Fein. Beachte aber bitte:

$quelldatei[1]=$HTTP_POST_VARS['bild1'];
$quelldatei[2]=$HTTP_POST_VARS['bild2'];
$quelldatei[3]=$HTTP_POST_VARS['bild3'];

1. Verwende IMMER und AUSSCHLIESSLICH die Variablen $_GET, $_POST, $_FILES etc. für die Entgegennahme deiner Formulardaten. $HTTP_xxx_VARS sind veraltet.

$i=1;
  $quelldatei = $quelldatei[$i];

An dieser Stelle kracht es. Dein oben so sorgfältig angelegtes Array wird überschrieben! Bedenke: Gleicher Variablenname!

Das heißt, dass Datei 2 und 3 scheitern müssen - auch wenn sich das nicht zwingend durch eine Fehlermeldung äußert.

print $zieldatei = "objekte/objekt".$objektnr."/bild".$i.".jpg";

if (!ftp_put($con, $zieldatei, $quelldatei, FTP_BINARY)) {

Bist du sicher, dass in $quelldatei das drinsteht, was du brauchst? Du hast hier schließlich nur den DateiNAMEN - die Datei selbst befindet sich aber nicht auf deinem Server (auf dem das PHP-Skript läuft), sondern auf dem Rechner, auf dem du das Formular ausgefüllt hast. Insbesondere könnte die Pfadangabe zu der Datei fehlen.

Wieso wird der Inhalt nicht übertragen?

Offenbar findet ftp_put etwas, was erfolgreich übertragen werden konnte, aber leer ist. Dein Skript ist zumindest EXTREM fragwürdig, was deine Annahmen über existierende Dateien und Variableninhalte angeht.

- Sven Rautenberg