Ajax 文件上传。发送表单数据
Ajax File upload. sending formData
HTML
<form id="uploadimage" action="" method="post" enctype="multipart/form-data">
<div class="file-input btn btn-block btn-primary">
+ add files
<input type="file" name="files" id="image_upload" >
</div>
</form>
JS
$('#image_upload').change(function(){
var formdata = $(this).parent().parent();
$.ajax({
url: "/server.php", // Url to which the request is send
type: "POST", // Type of request to be send, called as method
data: new FormData(formdata), // Data sent to server, a set of key/value pairs (i.e. form fields and values)
contentType: false, // The content type used when sending data to the server.
cache: false, // To unable request pages to be cached
processData:false, // To send DOMDocument or non processed data file it is set to false
success: function(data) // A function to be called if request succeeds
{
alert(data);
}
});
Server.php
if(isset($_FILES["file"]["type"]))
{
echo "YES";
}
else echo "NO";
我尝试做不同的事情,但仍然得到 NO 作为答案。
有什么办法可以得到肯定的答复?
您正在将一个 jQuery 对象传递给您的 FromData 构造函数,它采用一种形式。
传递
对象时从 jQuery 对象公开表单
data: new FormData(formdata[0]), // Data sent to server, a set of key/value pairs (i.e. form fields and values)
HTML
<form id="uploadimage" action="" method="post" enctype="multipart/form-data">
<div class="file-input btn btn-block btn-primary">
+ add files
<input type="file" name="files" id="image_upload" >
</div>
</form>
JS
$('#image_upload').change(function(){
var formdata = $(this).parent().parent();
$.ajax({
url: "/server.php", // Url to which the request is send
type: "POST", // Type of request to be send, called as method
data: new FormData(formdata), // Data sent to server, a set of key/value pairs (i.e. form fields and values)
contentType: false, // The content type used when sending data to the server.
cache: false, // To unable request pages to be cached
processData:false, // To send DOMDocument or non processed data file it is set to false
success: function(data) // A function to be called if request succeeds
{
alert(data);
}
});
Server.php
if(isset($_FILES["file"]["type"]))
{
echo "YES";
}
else echo "NO";
我尝试做不同的事情,但仍然得到 NO 作为答案。 有什么办法可以得到肯定的答复?
您正在将一个 jQuery 对象传递给您的 FromData 构造函数,它采用一种形式。
传递
data: new FormData(formdata[0]), // Data sent to server, a set of key/value pairs (i.e. form fields and values)