我试图制作一个ajax图像上传器我想知道如何通过xmlHttpRequest发送图像。
首先,我尝试使用FormData对象发送
var formdata = new FormData();
formdata.append('file',fileInput.files[0]);
但是当我在print_r
和_POST
请求的php文件中_FILES
时,该函数返回一个空数组。
我也尝试过只使用send()方法,但它也无法解决问题
注意:我没有忘记setHeader中的"multipart/form-data"
。
答案 0 :(得分:-1)
要在应用程序中使用XML HTTP请求功能,您必须学习使用Ajax在后台上传文件
1)定义文件上传的输入元素。单击按钮时,使用按钮单击事件的upload()方法上载文件。
<input type="file" id="uploadfile" name="uploadfile" />
<input type="button" value="upload" onclick="upload()" />
2)在upload()方法中,创建一个FormData接口实例,并将带有附加文件的文件元素添加到其中。使用send()方法将FormData发送到服务器。
<script>
var client = new XMLHttpRequest();
function upload()
{
var file = document.getElementById("uploadfile");
/* Create a FormData instance */
var formData = new FormData();
/* Add the file */
formData.append("upload", file.files[0]);
client.open("post", "/upload", true);
client.setRequestHeader("Content-Type", "multipart/form-data");
client.send(formData); /* Send to server */
}
/* Check the response status */
client.onreadystatechange = function()
{
if (client.readyState == 4 && client.status == 200)
{
console.log(client.statusText);
}
}
</script>