【发布时间】:2012-08-11 06:21:08
【问题描述】:
我知道使用常规 Ajax 调用无法上传文件,因此我想使用 jQuery 文件上传插件来模拟该过程。我有一个表单,允许用户为具有 3 个名为male_image、female_image 和neutral_image 的文件输入的项目输入数据。我想在我的 Ajax 调用的成功回调中上传所有 3 个输入中的文件。
$.ajax({
type: "POST",
url: "/manage/processadditem",
data: $("#add_form").serialize(),
dataType: "html",
success: function( response, textStatus, XHR )
{
if(response.indexOf('invalid') >= 0 || response.indexOf('Exception') >= 0){
//Show them their errors
alert(response);
}
else{
//Data was good
//Upload male_/female_/neutral_image to /manage/items/itemimage
//for further processing
}
}
});
我已经在背面设置了代码来处理图像,我只需要将它们放在那里。我能找到的所有多文件输入插件似乎都可以处理从单个输入发送多个文件。如何从多个文件输入发送,每个输入都带有一个文件,以便在后端区分它们?
【问题讨论】:
-
你的理解有点偏差,使用AJAX上传多个文件是完全可以的。这是一篇文章:net.tutsplus.com/tutorials/javascript-ajax/…
-
@Vap0r 看起来该站点所针对的几乎所有浏览器都支持 fileReader,但是 FormData 对象呢?
-
很久没有这方面的经验了。但我相信这是执行此操作的最新方法之一,但我认为您需要 iframe 后备。您可以只使用 jquery 的文件上传插件,但我没有经验可以帮助您。我只是想指出您实际上可以使用 AJAX 来上传文件。 (无论如何,这就是 jquery 上传插件所做的!)
-
@Vap0r 如果所有插件都在做同样的事情,我不妨使用其中一个而不是对所有内容进行硬编码,这让我回到了最初的问题,即不知道如何应用多个输入的插件,而不是支持多个文件的单个输入,因为这就是所有结果似乎都拉出来的。
-
就像我说的,我只是想告诉你你的假设是错误的,你在使用this jQuery file uploader吗?它内置了多个文件拖放 AJAX 上传。这可能是您想要使用的。
标签: jquery jquery-plugins file-upload