Problem beim Upload/Verarbeiten von Binaries

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem beim Upload/Verarbeiten von Binaries

    Habe ein PHP-Programm geschrieben, dass Binaries per HTTP-Upload entgegennimmt und in einem Mediumblob in MySQL ablegt.

    Problem: Das Skript bricht bei Dateien grösser 800 kb ab, obwohl in allen CONFs und INIs die Obergrenze bei 8 MB bzw. 3000 Sekunden liegt. Der Browser zeigt einfach ein "Seite nicht gefunden" an (habe mehrere Browser ausprobiert). Das grosse Problem an der Sache ist, dass keine Errorlog geschrieben wird und somit keine Anhaltspunkte für eine Fehlersuche vorhanden sind.

    Die Gegenprobe, HTTP-Upload einer 7,5 MB-Datei mit einem kleinen PHP-Skript und einfaches Abspeichern im Verzeichnis klappt problemlos (Da muss also irgendwo der MySQL-Server den Abbruch verursachen .... !?)

    Hat jemand eine Idee, wie ich bei der Fehlersuche weiterkommen kann???

    Hier noch zwei Code-Fragmente, die den entprechenden Teil (Upload und Abspeichern) betreffen:

    PHP-Code:


                         
    if ($HTTP_POST_FILES[$key]['name']) 
                         { 
                             
    $f=fopen($HTTP_POST_FILES[$key]['tmp_name'],"r"); 
                             
    $error_file=""
                             if (
    $HTTP_POST_FILES[$key]['size']>$element['MAXBYTE']) $error_file.='<b>'.$key.'</b>: File size ('.$HTTP_POST_FILES[$key]['size'].'byte) must be < '.$element['MAXBYTE'].' byte.<br>'
                             if (!
    $error_file
                             { 
                                 
    $upload=fread($f,filesize($HTTP_POST_FILES[$key]['tmp_name'])); 
                                 
    fclose($f); 
                                 
    $upload=@base64_encode(gzcompress($upload)); 
                                 
    $sqlf[]=array("key"=>$key,"content"=>$upload,"filename"=>$HTTP_POST_FILES[$key]['name'],"id"=>$HTTP_POST_VARS[$key.'_fileid']); 
                             } 
                             else {
    $error.= $error_file;} 
                         } 



    ... 


                         if (
    $rowf[0]) 
                         { 
                             
    $tmpfname tempnam ("/tmp""FOO"); 
                             
    $fp fopen($tmpfname"w"); 
                             
    fwrite($fpgzuncompress(base64_decode($rowf[0])),strlen(gzuncompress(base64_decode($rowf[0])))); 
                             
    fclose($fp); 
                             echo 
    'File name: <a href="kcms_file.php?action=link&id='.$row[$element["NAME"]].'">'.$rowf[1].'</a>, size: '.mkbyte(filesize($tmpfname)); 
                             echo 
    '&nbsp;<a href="kcms_file.php?action=delete&id='.$row[$element["NAME"]].'&table='.$table.'&entry_id='.$id.'&field_name='.$element["NAME"].'">'
                             echo 
    '<img src="'.$paths['IMAGES'].'/b_muelleimer_02.gif" width="20" height="20" border="0" alt="Delete file"></a>'
                             @
    unlink($tmpfname); 
                         } 
    Zuletzt geändert von fistro; 10.08.2004, 18:31.

  • #2
    Bitte [PHP]-Tags benutzen!

    Kommentar

    Lädt...
    X