2016-05-13 132 views
1

我想在瀏覽器上使用ajax上傳文本文件,但我沒有得到如何做到這一點。該文件未上傳,var_dump($ files)回顯數組(0)。AJAX上傳文件不起作用

HTML:

<form id="uploadsql" action="upload.js" method="post" enctype="multipart/form-data"> 
    <input id="uploadFile" type="text" disabled="disabled" placeholder="Choose File" /> 
    <div class="fileUpload btn btn-primary"> 
     <span>Upload</span> 
     <input id="uploadBtn" name="file" type="file" class="upload"required /> 
    </div> 

    <div class="fileUpload btn btn-primary"> 
     <span>Submit</span> 
    <input type = "submit" id="uploadBtn" class="upload" /></div> 

    </form> 
    <h4 id='loading' >Loading...</h4> 
    <div id="message"></div> 
    <script type="text/javascript"> 
      document.getElementById("uploadBtn").onchange = function() { 
       document.getElementById("uploadFile").value = this.value; 
      }; 
    </script> 

JS:

$(document).ready(function (e) { 
$("#uploadsql").on('submit',(function(e) { 
e.preventDefault(); 
$("#message").empty(); 
$('#loading').show(); 
$.ajax({ 
url: "upload.php", // Url to which the request is send 
type: "POST",    // Type of request to be send, called as method 
cache: false,    // To unable request pages to be cached 
success: function(data) // A function to be called if request succeeds 
{ 
$('#loading').hide(); 
$("#message").html(data); 
} 
}); 
})); 


}); 

PHP:

<?php 
set_time_limit(0); 
header('content-type: text/html; charset=utf-8'); 
header("access-control-allow-origin: *"); 

include 'connect.php'; 


if(isset($_FILES["uploadBtn"]["type"])) 
{ 
echo 'yes'; 

} else { 
    $files = $_FILES; 
    var_dump ($files); 
} 



?> 

我在做什麼錯在這裏? 在此先感謝!

+2

可能重複[發送multipart/formdata與jQuery.ajax](http://stackoverflow.com/questions/5392344/sending-multipart-formdata-with-jquery-ajax) – apokryfos

+0

感謝@apokryfos它幫助! – SLFl

回答

0

以及通過查看您的ajax調用,您不包括ajax對象的「數據」屬性。但我建議你看看這個答案jQuery AJAX file upload PHP