jQuery不使用插件及swf实现无刷新文件上传
文件上传是网站常用的功能,例如附件或图片的上传功能,解决方案也有很多,我们今天介绍一种通过jQuery无刷新的文件上传方式。
首先,我们在页面中放一个form,用来上传文件:
<formid="myForm"method="post"action="/asyncFileUpload/UploadHandler.ashx" enctype="multipart/form-data"target="asyncTarget"> <span>文件:</span> <inputtype="file"name="myFile"/> </form> <inputtype="button"value="上传"id="btnUpload"/>
然后,在页面中放一个iframe,在上传的时候只刷新iframe,而不是整个网页:
<iframename="asyncTarget"style="display:none;"></iframe>
接下来使用js为按钮添加功能:
<script> $(function(){ $("#btnUpload").click(function(){ $("#myForm").submit(); }); }); </script>
在按钮单击的时候,将form提交。
这个方案可以简单的实现无刷新的文件上传。它的实现思路是:将form提交到一个iframe中,其它的处理就像处理普通的form提交一样了。
这个方案的待完善地方是如何判断上传完成,目前只有一个思路:通过js监听iframe的readystate,然后解析iframe的内容。