moppelito am 06.07.2009 um 0:05 Uhr
Hallöchen, erstmal mein ehutiges Problem: ich möchte mit einem Freund einen FTP machen, er hat dann mal einen quelltexxt rausgesucht, sieht in PHP so aus: <?php if (isset($FILES['datei'])) { switch($FILES['datei']['type']) { case "image/gif" : $error = false; break; case "image/jpeg" : $error = false; break; }
if(fileexists(htmlspecialchars(basename($FILES['datei']['name'] )))) $error = true;
if(!$error) { if(moveuploadedfile($FILES['datei']['tmpname'], htmlspecialchars(basename($FILES['datei']['name'] )))) echo "<br /><font color=green><b>Die Datei (".htmlspecialchars(basename($FILES['datei']['name'] )).") wurde erfolgreich hochgeladen</b></font><br />"; else echo "<br /><font color=red><b>Es gab einen Fehler beim Hochladen der Datei: (".htmlspecialchars(basename($FILES['datei']['name'] )).")</b></font><br />"; } else echo "<br /><font color=red><b>Die Datei (".htmlspecialchars(basename($FILES['datei']['name'] )).") entspricht nicht den Normen bzw. ist schon vorhanden!<br /> Erlaubt sind nur: gif, jpg, jpeg, jpe oder png</font></b><br />"; }
Wie kann ich das Machen dass ich auch andere Dateitypen ausser Bilder hochladen kann? Ich habe das mal erweitert mit anderen DateiEndungen, aber irgendetwas mache ich falsch, kann man das auch verallgemeinern?
versuchs mal statt
image/gif mit
multipart/form-data
..bin aber auch nich wirklich ein profi, also sorry wenns nich klappt :D
Nimm die Zeile hier einfach raus: if (isset($FILES['datei'])) { switch($FILES['datei']['type']) { case "image/gif" : $error = false; break; case "image/jpeg" : $error = false; break; }
Das prüft auf den Dateityp und setzt entsprechend die Variable $error.
Evtl. dies stattdessen einfügen, um klare Verhältnisse zu schaffen: $error = false;
Bin mir nicht sicher, ob die Klammer dann noch alle stimmen. Evtl. mal überprüfen.
Also wenn der PHP anfang so beginnt:
<?php if (isset($FILES['datei'])) { switch($FILES['datei']['type']) { case "multipart/form-data" : $error = false; break; default : $error = true; break; } klappt es nciht oder war das falsch?