可能重复:
通过 JQuery 中的 AJAX
上传文件如何在不提交表单的情况下轻松上传文件(使用 jQuery + AJAX)
我知道我们可以使用表单上传文件,enctype="multipart/form-data"
但我想弄清楚的是使用 Jquery Ajax 上传文件..
有小费吗??提前致谢。
可能重复:
通过 JQuery 中的 AJAX
上传文件如何在不提交表单的情况下轻松上传文件(使用 jQuery + AJAX)
我知道我们可以使用表单上传文件,enctype="multipart/form-data"
但我想弄清楚的是使用 Jquery Ajax 上传文件..
有小费吗??提前致谢。
试试这个 jQuery 插件http://valums.com/ajax-upload/
然后使用这个javascript代码
var uploader = new qq.FileUploader({
// pass the element
element: $(selector)[0],
// path to server-side upload script
action: '/server/upload'
});
有关更多信息,请查看文档
我过去使用过http://blueimp.github.com/jQuery-File-Upload/,它提供了很棒的演示和文档。
提到的插件都很有用,但如果你想知道这个过程背后的逻辑,它是这样的:
echo
)。您需要使用 FormData 对象,但它只适用于较新的浏览器。
if (window.FormData) {
$('input[type=file]').change(function() {
var formdata = new FormData();
var file = this.files[0];
formdata.append("files[]", file);
$.ajax({
url: "upload.php",
type: "POST",
data: formdata,
processData: false,
contentType: false
});
});
}
更多信息:https ://developer.mozilla.org/en/XMLHttpRequest/FormData
您还可以查看带有示例 HTML 和一些附加功能的 lib:http: //net.tutsplus.com/tutorials/javascript-ajax/uploading-files-with-ajax/
为了支持旧浏览器,您可以制作 iframe,将文件输入元素克隆到 iframe 并在那里提交表单。这样一来,页面就不会刷新,而且会像 AJAX 一样。
取决于你的需要。
对于单个文件, http: //valums.com/ajax-upload/就足够了
对于 multipla 文件上传 + 多文件选择,您将需要其他技术,如 flash 或 html5,您可以检查plupload或Uploadify
plupload 支持 flash、html5、silvernight html4 上传方式。并且还支持多文件选择(html4除外)
uploadify 支持 flash 和 html5 进行多文件选择