how to send ajax request to upload file
本问题已经有最佳答案,请猛点这里访问。
我有这样的标记我现在不使用表单。我想使用Ajax上载图像。
1 2 3 4 5 6 7 8 9 10 11 12 | $('#file').on('change', function(e) { $.ajax({ url:"upload.php", type:"POST", data: ?, processData: false, contentType: false, success: function (response) { console.log(response); } }); }) |
在数据中,我必须发送什么?我只得到了堆栈中的Ajax溢出,但我无法理解。还有一件事,我怎样才能在PHP文件中接收数据?
谢谢您?
无法通过Ajax上传图像。您可以创建一个隐藏的iframe并使用它上载文件。
您正在尝试的操作可以在支持FormData函数的浏览器中完成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $('#file').on('change', function(e) { var data = new FormData(); data.append('file',this.files[0]); $.ajax({ url:"upload.php", type:"POST", data: data, processData: false, contentType: false, success: function (response) { console.log(response); } }); }) |
请注意,通常通过Ajax上传文件是一件痛苦的事情。您可以在jquery中通过ajax查看相关问题文件上传。
就我个人而言,我倾向于在提交时生成一个隐藏的iframe,以及一个表单的副本,然后提交。完成后,iframe的内容将被抓回jquery。在旧的IE版本中,我找不到另一种工作方式。