Hallo Forum,
habe da ein etwas dümmliches Problem. Ich habe ein upload in PHP realisert, indem ich möchte, dass nur zip-Files hochgeladen werden können. Hier mal die Funktion...
/*
uploadFile(string) kopiert die hochgeladene Datei in $temp_dir. Dabei muss
das Name-Attribut des input-HTML-Tags mitgegeben werden. Dabei werden
folgende Werte zurueck gegeben:
0 Erfolg
1 Die Datei ist kein Zip-Archiv
2 Fehler bim Upload
3 Fehlendes Attribut des korrelierenden input-tags
4 Die Datei konnte nicht ins Zielverzeichnis verschoben werden
*/
function uploadFile($param_file) {
global $temp_dir;
if (!empty($param_file)) {
if ($_FILES[$param_file]["error"] == 0) {
if ($_FILES[$param_file]["type"] != "application/zip") {
//echo "type = ".$_FILES[$param_file]["type"]."<br>\n";
return 1;
exit;
}
else {
$from = $_FILES[$param_file]["tmp_name"];
$to = $temp_dir."/".$_FILES[$param_file]["name"];
echo "Copy $from to $to<br>\n";
if (move_uploaded_file($from,$to)) return 0;
else {
return 4;
exit;
}
}
}
else {
// Ausgabe: Fehler beim Upload
// echo "<pre>"; var_dump($_FILES); echo "</pre>";
return 2;
exit;
}
}
else return 3;
}
Wenn ich jetzt unter Ubuntu ein Zip-File da durch jage, bekomme ich return 0 (→ application/zip), sprich alles ok, unter Windows bekomme ich unterschiedlichste Resultate je nach Browser. Zwar wird immer return 1 zurück gegeben aber $_FILES[$param_file]["type"] ist unterschiedlich!
IE6: application/x-zip-compressed
FF: application/octet-stream
Hä? 😲 Das Formular enthät enctype="multipart/form-data". Was ist hier los ❓ ❓ ❓
Grüße
Bernd