我不想使用 jQuery,但我想使用 Ajax 进行文件上传。那可能吗?
如果是这样,我在哪里可以找到有关它的信息/教程?
我不想使用 jQuery,但我想使用 Ajax 进行文件上传。那可能吗?
如果是这样,我在哪里可以找到有关它的信息/教程?
不,使用 javascript 无法做到这一点。
但是,为了给人一种“AJAX”的感觉,您可以将表单提交到隐藏的 iframe 并将脚本结果输出到它,然后从那里进行处理。谷歌ajax iframe upload
并从那里开始。
如果您使用 jQuery, Form plugin
如果您的表单中有任何文件字段,它还会自动为您创建此 iframe。我没有用它来做这件事,但我听说过好消息。
正如评论中所指出的,您还可以使用类似非常流行的东西SWFUpload
来通过 Flash 实现所需的效果。
如果有人在很久以后才发现这个问题:是的,现在 JavaScript 可以做到这一点。
HTML5 定义了 2 个新的 API,您可以一起使用它们来完成此操作:拖放 API 和文件 API。您可以使用 jQuery 与 API 有效交互,让人们可以拖放文件进行上传。
这是有关如何执行此操作的教程。
该代码目前适用于 Chrome 6+ 和 Firefox 3.6+、Safari 6 和 IE 10。如果您需要 Safari 5 支持,代码几乎保持不变,但您使用 FormData 对象代替上传的文件列表(更多信息请参见邮政)。
Opera 从 11 开始支持文件 API,但不支持 DnD API,删除操作不会启动上传,但它们支持您使用 API 访问文件。我想在 12 年他们将完成对 DnD API 的支持。
01-20-14 更新:现在所有主流浏览器都实现了所有标准 API,因此本教程适用于所有浏览器。
我使用swfupload进行多个类似 ajax 的上传(基于 javascript/flash)
这里有一些关于 gmail 如何使用 iframe 的细节:
假设您使用的是 Java,DWR 3.0 版(目前在 RC1 中)支持二进制文件上传/下载,这使得问题变得非常简单。我还没有机会尝试这个,但我们广泛使用 DWR 并取得了完全成功;它是一个很棒的 Ajax 工具包。
http://directwebremoting.org/blog/joe/2008/12/16/dwr_version_3_0_release_candidate_1.html