大佬教程收集整理的这篇文章主要介绍了使用pjax(和jQuery.form?)发布带有文件附件的表单,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
那么,如何在包含文件字段的表单中使用pjax功能呢?有任何想法吗?
编辑:我之所以不简单地使用FormData对象,而是使用jquery.form插件:Internet Explorer无法处理它们.该插件为此浏览器提供了一种解决方法.我不坚持使用jquery.form插件,但我需要一种方法使它适用于所有主流浏览器.
例如,如果这是您的表单:
<form enctype="multipart/form-data"> <input name="file" type="file" /> <input type="button" value="Upload" /> </form>
var formData = new FormData($('form')[0]);
然后你可以使用jQuery $.ajax请求或简单的XMLHttpRequest();像这样:
var xhr = new XMLHttpRequest(); xhr.open("POST","http://foo.com/processfile.PHP"); xhr.send(formData);
或者在jQuery中类似:
$.ajax({ url: 'http://foo.com/processfile.PHP',type: 'POST',data: formData,cache: false,contentType: false,processData: false });
在服务器端,在processfile.PHP中,您可以使用以下方式接收/显示文件内容:
$file = $_FILES [‘file’] [‘name’];
这应该与pJAX一起使用,因为它是异步的!只需确保在pJAX请求之前发出此请求,或者如果您使用的是jQuery,则可以将其添加为成功回调的一部分.例如(不知道您使用的是哪个pJAX库):
$.ajax({ url: 'http://foo.com/processfile.PHP',processData: false,success: function(data) { $.pjax({url: url,container: '#pjax-container'}); } });
编辑:如果你想支持IE7,你需要回退使用隐藏的iframe元素进行上传,因为FormData仅在Internet Explorer 10中受支持.一个伟大的插件,用于提交我已经测试过但没有jQuery工作的文件是http://fineuploader.com/在我看来比https://github.com/malsup/form(jquery.form插件)更好/更容易使用.
以上是大佬教程为你收集整理的使用pjax(和jQuery.form?)发布带有文件附件的表单全部内容,希望文章能够帮你解决使用pjax(和jQuery.form?)发布带有文件附件的表单所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。