Matt: Einfacher Dateiupload

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?

  1. 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

    --
    -------------------
    There's no such thing as a free lunch  --  Milton Friedman
    1. 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?

      1. 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!