php
  • javascript
  • html
  • undefined-index
  • 2012-04-11 16 views 0 likes 
    0

    ich eine Form habe, die eine Datei-Eingabe enthält:Ich erhalte einen undefinierten Index Hinweis

    var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='startImageUpload(this);' class='imageuploadform' ><label>" + 
        "Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><label class='imagelbl'>" + 
        "<input type='submit' name='submitImageBtn' class='sbtn' value='Upload' /></label>" + + 
        "</p> <iframe class='upload_target' name='upload_target' src='#' style='wclassth:0;height:0;border:0px;solclass #fff;'></iframe></form>"); 
    

    diese Links zu einem PHP-Skript, wo es die Datei-Uploads:

    <?php 
    
        $destination_path = str_replace("//", "/", $_SERVER['DOCUMENT_ROOT']."/")."ImageFiles"; 
    
        $result = 0; 
    
        $target_path = $destination_path . basename($_FILES['fileImage']['name']); 
    
        if(move_uploaded_file($_FILES['fileImage']['tmp_name'], $target_path)) { 
         $result = 1; 
        } 
    
        sleep(1); 
    ?> 
    
    <script language="javascript" type="text/javascript">window.top.window.stopImageUpload(<?php echo $result; ?>);</script> 
    

    Problem ist, dass in Das PHP-Skript besagt, dass ich einen undefinierten Index habe, wo immer 'fileImage' im PHP-Skript steht. Aber ich weiß nicht, warum es sagt, dass ich einen undefinierten Index habe, wenn ich im Namensattribut in der Form 'fileImage' erwähnt habe. Warum gibt es an, dass ich einen undefinierten Index für 'fileImage' im PHP-Skript habe?

    Hier ist ein Link zu einer Anwendung, wo Sie Zeilen anhängen können, die Dateieingaben enthalten, Sie können dies testen und selbst sehen, wenn Sie es wünschen, aber im Moment sagt es immer wieder, dass beim Hochladen ein Fehler aufgetreten ist. application

    +1

    versuchen Sie eine print_r ($ _ FILES) um zu sehen, wie das Array wirklich aussieht. – h00ligan

    +0

    @ h00ligan Ich werde das tun und zurück zu Ihnen – user1324106

    +0

    Wenn ich die print_r ($ _ FILES), kommt es mit einem leeren Array, das ist seltsam, obwohl, wenn ich eine Datei hochgeladen habe. Ausgabe: 'Array()' – user1324106

    Antwort

    1

    Es kann viele Gründe geben, die die Grundursache für diesen Fehler, aber der eigentliche Grund ist, dass die $_FILES Array keinen Stringindex 'fileImage' hat.

    Um einen besseren Überblick zu bekommen, welche Indizes verfügbar sind, können Sie ein tun:

    var_dump(array_keys($_FILES)); 
    

    sowie array_keys und var_dump See.

    Wahrscheinlich die folgenden (in diesem Javascript-Code nicht dokumentiert Frage) ist etwas in Ihrer Form zu zerstören oder es Daten:

    onsubmit='startImageUpload(this);' 
    
    +0

    Da ich für jede Tabellenzeile eine Datei hochlade, benutze ich (das), wenn es etwas zerstört, was sind dann die Möglichkeiten, das zu beheben? Wie ich schon sagte, brauche ich das (this) in der onsubmit-Zeile? Willst du, dass ich die JavaScript-Funktion einfüge, die dieses Submit durchführt? – user1324106

    +0

    'this' kann vollkommen in Ordnung sein. Ich nahm nur an, weil es von deiner Frage nicht klar ist, das könnte völlig weit weg sein. Wie Sie unter Ihrer Frage kommentiert haben, schlage ich vor, dass Sie jetzt den Netzwerkverkehr zwischen Ihrem Browser und dem Server analysieren, da nicht klar ist, was mit Ihrer "Upload" -Anfrage passiert (offensichtlich ist keine Upload-Anfrage mehr erforderlich) mehr Informationen, damit Sie mehr herausfinden können). – hakre

    +0

    Hier ist ein Link zu einer Anwendung, wo Sie Zeilen anhängen können, die Dateieingaben enthalten, Sie können dies testen und selbst sehen, wenn Sie es wünschen, aber im Moment sagt es immer wieder, dass beim Hochladen ein Fehler aufgetreten ist. [Anwendung] (http://helios.hud.ac.uk/u0867587/Mobile_app/QandATable2.php) – user1324106

    0

    Ich habe das gleiche Problem aufgetreten bevor und es war wegen meiner Ajax/JavaScript-Code. Versuchen Sie als Test, Ihr Formular ohne Javascript zu senden. Auf diese Weise wissen Sie, wo genau das Problem liegt. Wenn der Fehler verschwindet, könnte Ihr Problem mit Javascript auftreten.

    Ich habe nie wirklich die richtige Lösung zum Hochladen von Dateien mit Ajax. Ich löste das Problem, indem ich das Formular in einen iframe schickte und dann eine Rückmeldung sammelte, sobald es fertig geladen war.

    Ich würde so etwas auf dem Formular-Tag tun: <form action="..." target="myframe">. Erstellen Sie einen Rahmen mit name="myframe" und onload="getResults()" Dies ist vage, aber ich hoffe, es gibt Ihnen eine Idee.

    Seien Sie nur vorsichtig, wenn Sie onload verwenden, weil es zweimal viz wird. wenn die Seite zum ersten Mal geladen wird und wenn das Formular fertig ist.

    Ich hoffe, ich habe Ihren Punkt hier nicht völlig falsch verstanden.

    Verwandte Themen