2016-04-06 11 views
1

Ich habe viele Fragen zu diesem Thema gesehen, aber keine von ihnen scheint mein Problem anzugehen. Alles scheint ziemlich geradlinig zu sein, aber ich bekomme nur ein leeres Array, vermisse ich hier etwas wirklich Einfaches?

Danke. Hier

ist der html/javascript Code:

<script type="text/javascript" src="/javascript/jquery.js"></script> 

    <form enctype="multipart/form-data" action="" id="frmProduct" method="post"> 
     <input type="file" id="pdffile" name="pdffile" size="50" />       
     <br />       
     <input id="pdffileupload" type="submit" value="Upload" />  
     </form> 

<script> 
$('#pdffileupload').bind('click', function() 
{ 
    var files=document.getElementById('pdffile').files[0]; 
    var fd = new FormData(); 

    fd.append("pdffile", files); 

    $.ajax({ 
     url: '/info.php', 
     type: 'POST', 
     cache: false, 
     data: fd, 
     processData: false, 
     contentType: false, 
     success: function(data) { alert("YES"); }, 
     error: function(data){ alert("NO"); } 
    }); 
    return false; 
}); 
</script> 

& PHP info.php

<?php 
var_dump($_FILES); 
?> 
+0

überprüfen Sie bitte die Upload-Dateigröße. Versuchen Sie, weniger als 2 MB-Datei hochzuladen und zu überprüfen. – RJParikh

+0

Setzen Sie die AJAX-Option 'contentType' auf' multipart/form-data' oder PHP kann Ihre Anfrage nicht analysieren. – Rainner

+0

Vielen Dank für die Antworten, die Dateigröße ist 35k –

Antwort

0

benötigt Changes (nur einmal überprüfen, indem all meine Vorschläge versuchen): -

1.In selber Ordner beiden Dateien (gleiches Arbeitsverzeichnis) setzen.

-Code ändert: -

<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script> <!-- add jquery library like this --> 

    <form enctype="multipart/form-data" action="" id="frmProduct" method="post"> 
     <input type="file" id="pdffile" name="pdffile" size="50" />       
     <br />       
     <input id="pdffileupload" type="submit" value="Upload" />  
     </form> 

<script> 
$('#pdffileupload').bind('click', function() 
{ 
    var files=document.getElementById('pdffile').files[0]; 
    var fd = new FormData(); 

    fd.append("pdffile", files); 

    $.ajax({ 
     url: 'info.php', // remove/
     type: 'POST', 
     cache: false, 
     data: fd, 
     processData: false, 
     contentType: false, 
     success: function(data) { alert("YES"); }, 
     error: function(data){ alert("NO"); } 
    }); 
    return false; 
}); 
</script> 

Und in php

<?php 
print_r($_FILES); 
?> 

Hinweis: - Überprüfen Sie in Ihrem Browser Konsole (Antwort tab).

+0

Vielen Dank nochmal, die 2 Probleme wurden behoben. 1. Verwendung von print_r ($ _ FILES) im PHP-Code 2. einschließlich der neuesten Version von jquery 1.12.0 (meine Version war 1.4.4) –

0

Sie könnten versuchen, diese:

<?php print_r($_FILES); ?> 

statt

<?php var_dump($_FILES); ?> 

Da die var_dump nicht mit $ _FILES funktioniert.

+0

Vielen Dank für Ihre schnelle Antwort, leider bekomme ich das jetzt einfach Array() –

Verwandte Themen