Einfacher Dateiupload
Matt
- php
Hallo,
mein einfacher Dateiupload mit PHP scheitert unter Safari.
In der Datei pdf.php kann man eine Datei auswählen welche dann bei Absendung an das Script pdf_handle.php weitergegeben und hochgeladen wird.
In Firefox und InternetExplorer funktioniert es, am Mac unter Safari bekomme ich jedoch folgende Fehlermeldung (öfters):
Notice: Undefined index: file in
xxx\pdf_handle.php on line 30
(Line 30 ist ab "// Datei in Ordner ablegen... copy($_FILES["file"]["tmp_name"]"
zudem findet kein Dateiupload statt.
Hier die Scripts:
pdf.php
------------------------------------------------------------
<form action="?site=pdf_handle" method="post" enctype="multipart/form-data" onsubmit="return zeigeBalken();" name="upload">
<input name="file" type="file" class="formfield" size="40" />
</form>
pdf_handle.php
------------------------------------------------------------
error_reporting(E_ALL);
if($_SERVER['REQUEST_METHOD'] == 'POST') {
// Prüfen ob Session Verzeichnis (Ordner) bereits existiert
if(file_exists('temp/'.session_id())) {
// Wenn Datei im Verzeichnis schon existiert, löschen
if(file_exists('temp/'.session_id().'/'.$_FILES["file"]["name"])) {
unlink('temp/'.session_id().'/'.$_FILES["file"]["name"]);
}
$fullname = explode('.', $_FILES["file"]["name"]);
$xml_file = 'temp/'.session_id().'/'.$fullname[0].'.xml';
// Wenn XML Datei existiert, löschen
if(file_exists($xml_file)) {
unlink($xml_file);
}
}
// Wenn Session Verzeichnis (Ordner) noch nicht existiert...
else {
// Session Verzeichnis (Ordner) anlegen
mkdir('temp/'.session_id());
}
// Datei in Ordner ablegen
copy($_FILES["file"]["tmp_name"], 'temp/'.session_id().'/'.$_FILES["file"]["name"]);
}
Kennt Safari etwa "tmp_name" nicht?
Hello,
In Firefox und InternetExplorer funktioniert es, am Mac unter Safari bekomme ich jedoch folgende Fehlermeldung (öfters):
laut der Fehlermeldung kennt er also den Index "file" nicht. Probier mal einen anderen Namen für dein Upload-Feld zu verwenden, der hier klingt mir relativ heikel.
MfG
Rouven
In Firefox und InternetExplorer funktioniert es, am Mac unter Safari bekomme ich jedoch folgende Fehlermeldung (öfters):
laut der Fehlermeldung kennt er also den Index "file" nicht. Probier mal einen anderen Namen für dein Upload-Feld zu verwenden, der hier klingt mir relativ heikel.
Hi,
das bringt leider nichts, dieselbe Fehlermeldung existiert mit dem neuen Namen ;-)
Sonst jemand eine Idee?
Gelöst!
Wen es interessiert:
Beim Klick auf weiter bzw. den Submit Button wird bei mir das Feld mit der Dateiauswahl ausgeblendet. Safari sieht das "display:none" oder auch "hidden" des Formularfelds als ein nicht vorhandenes Formularfeld an und spuckt deshalb die Fehler aus...
welch Blödsinn in meinen Augen!