2017-02-13 1 views
-1

Ich habe ein Problem mit einem leeren $ _POST-Array, während ich eine Datei hochladen.

Hier ist die Form:

<div class="popup"> 
    <h3>UPLOAD</h3> 
     <a class="close" href="#">&times;</a> 
     <div class="content"> 
      <form 
       id="uploadForm" 
       method="post" 
       enctype="multipart/form-data" 
       action="resources/upload.php?dir=<?php if(isset($_GET['dir'])){echo $_GET['dir'];} ?>" 
       enctype="multipart/form-data"> 

       <input type="file" name="fichier" id="file" class="inputfile"/> 
       <label for="file">Choisir un fichier</label><br> 
      </form> 
      <button onClick="submitUpload();" id="smbtBtt">Uploader</button> 
     </div> 
</div> 

Dies ist submitUpload fonction:

function submitUpload() 
{ 
    if(document.getElementById("file").value != ""){ 
     document.getElementById("uploadForm").submit(); 
    } 
    else 
    { 
     alert("Please select a file!"); 
    } 

}

Dann in der upload.php Datei, i var_dump gerade() das Array $ _FILES und $ _POST

Es ist 06.00 Uhr morgens, meine 5h gerade der Programmierung, deshalb bin ich so König :).

Vielen Dank!

+0

Sie haben var formData = new formdata(); Funktion, um alle Datei-Daten zu bekommen .. – Gulshan

+0

verwenden Sie Senden Schaltfläche vor dem Formular geschlossen .. überprüfen Sie diese Änderung – Gulshan

+0

@Gulshan ändert nichts ...:/ – Amperclock

Antwort

0

Verwenden Sie diesen Code. sein kann, hilft es Ihnen,

$('form#uploadForm').submit(function(e){ 
    var formData = new FormData(this); 

$.ajax({ 
url: "upload_file.php",    
type: "POST", 
data: formData, 
mimeType:"multipart/form-data", 
contentType: false, 
cache: false, 
processData:false, 
success: function(data) 
{ 
    alert(data); 
} 
}); 
return false; 
}); 
+0

Kann ich noch meine Felder wie bisher verwenden? – Amperclock

+0

@Anteus check formData variable..es erhalten Sie alle Daten von Eingabefeldern – Gulshan

0
<div class="popup"> 
    <h3>UPLOAD</h3> 
     <a class="close" href="#">&times;</a> 
     <div class="content"> 
      <form 
       id="uploadForm" 
       method="post" 
       enctype="multipart/form-data" 
       action="resources/upload.php?dir=<?php if(isset($_GET['dir'])){echo $_GET['dir'];} ?>" 
       enctype="multipart/form-data"> 

       <input type="file" name="fichier" id="file" class="inputfile"/> 
       <label for="file">Choisir un fichier</label><br> 
      </form> 
      <button onClick="submitUpload();" id="smbtBtt">Uploader</button> 
     </div> 
</div> 

<script type="text/javascript"> 
    function submitUpload() 
{ 
    if(document.getElementById("file").value != ""){ 
     document.getElementById("uploadForm").submit(); 
    } 
    else 
    { 
     alert("Please select a file!"); 
    } 
} 
</script> 

upload.php

<?php 
$test=$_FILES["fichier"]["tmp_name"]; 

echo $test; 

?>

+0

Ich muss die POST-Methode verwenden. Sie können keine Dateien mit der GET-Datei übertragen. Und es ist mein POST-Array in PHP, das leer ist. – Amperclock

+0

Sie können $ _GET ['Fichier'] mit Get-Methode erhalten .. Wenn Sie POST-Methode verwenden, werde ich die Antwort so bald wie möglich aktualisieren –

+0

aktualisierte Antwort und ihre Arbeit erfolgreich. .. –

1

Hier in Ihrem Formular, Sie Dateityp Feldelement verwenden. Sie müssen '$ _FILES' anstelle von $ _POST verwenden. Versuchen Sie dies

1

Sorry Leute, ich war nicht in der Lage, die $ FILES und die $ POST-Arrays zur gleichen Zeit arbeiten, so finde ich eine andere Lösung ohne eine von ihnen. Immer noch Panzer für jeden.

+0

welche Lösung Sie gefunden haben.Es muss ein Fehler in Ihrem Code sein, wegen dem Sie nicht in der Lage sind, POST und FILE gleichzeitig zu verwenden –

+0

in Ihrem aktuellen Code haben Sie nichts anderes als Datei und deshalb $ _POST ist leer –

+0

@Anant Das ist in Ordnung, ich habe es gelöst. Jetzt habe ich einige ACL Fehler ... T_T – Amperclock

Verwandte Themen