PHP HTTP Post Dateiuploadproblem

hpvw

Erfahrenes Mitglied
Ich habe jetzt alles mögliche versucht, um eine Datei zum Server zu laden (local, Win2k, Xitami, PHP4, d.h ich kann alles verstellen, was Ihr mir sagt).

Das formular.html sieht so aus:
Code:
<HTML>
<HEAD><TITLE>Upload</TITLE></HEAD>
<BODY>
<FORM enctype="multipart/form-data" action="upload.php4" method=post>
<INPUT type=file name="img"><BR>
<INPUT type=submit>
</FORM>
</BODY>

$HTTP_POST_FILES ist leer und $_FILES existiert nicht.

Das einzige, was dabei herauskommt ist $img, da drin steht der lokale Dateiname samt Pfad auf dem Client.
phpinfo() spuckt folgendes aus:
upload_max_filesize = 2M
upload_tmp_dir = C:\Xitami\PHP\uploadtemp
ost_max_size = 8M
file_uploads = 1

In C:\Xitami\PHP\uploadtemp erscheint nie eine Datei, während des ganzen Vorgangs.

Also denke ich, dass das ganze "nur" ein Konfigurationsproblem ist und kein Fehler in meinem Quelltext.

Wer kann mir helfen und sagen, wo ein Dateiupload noch verhindert werden kann?

Danke für die Antworten
hpvw
 
Im PHP bereich ist ein Tutorial dazu geschrieben... Schaust dir dass mal an... Ansonsten wäre der Code deiner Upload Datei (PHP) sicher kein Fehler...

antihero
 
So wie im Tutorial hatte ich es schon versucht.
Problem ist jedoch, dass auf dem Server (wahrscheinlich) keine Datei ankommt.
Auf dem Server sind Schreibrechte auf dem ganzen System vorhanden.
Eigentlich möchte ich die Datei öffnen, nicht kopieren, aber es geht beides nicht.
Kann es sein, dass ich in PHP oder am Webserver noch irgendwas konfigurieren muss?

Gruß hpvw
 
Hier mal meine Variante die funktioniert einwandfrei :

Die HTML-Datei :
PHP:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Dateiupload</title>
</head>

<body>
<FORM ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD="POST"> 
<input type="file" name="file"> 
<input type="submit" value="Datei senden"> 
</FORM> 
</body>

</html>

Die PHP-Datei :
PHP:
<?
$path = "/usr/home/mount1/single/www/domain/upload/";

if (!copy($file, $path.$file_name))
{
echo "Fehler bei der Dateiübertragung. Bitte versuchen Sie es erneut !";
} else {
echo "Die Datei $file_name wurde erfolgreich hochgeladen.";
}
?>

Die Variable $path musst Du entsprechend Deinem Server anpassen ...
 
Wow Danke Klasse, so bin ich schon einmal einen grossen Schritt weiter.

Da die Dateien letzlich in der Datenbank landen sollen (ich weiss, da gibt es sehr geteilte Meinungen, aber ich hätte es nun mal gerne so) würde ich gerne direkt die Temporäre Datei öffnen und einlesen.

Gibt es für den Temporären Dateinamen und Pfad auch ein Parameter wie _name für den Dateinamen?

Oder kann ich direkt $file in die DB schreiben?

Nochmal vielen Dank,
wenns alles nichts hilft werde ich wohl irgendwo auf dem Server im laufe der Zeit viele Dateien anlegen müssen. Schön wäre jedoch, wenn ich zur Datensicherung einfach die Datenbank kopieren könnte und mich nicht um weiteres kümmern müsste.

Beste Grüße hpvw
 
Zurück