介绍
这篇文章主要介绍HTML5中Ajax如何实现文件上传并显示进度条,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
具体内容如下
效果图:
HTML5上传是同步上传的方式,所以能够实现进度条的显示。
<强> 1。上传文件:
强>
首先我们用Ajax来取得& lt;输入类型=癴ile"id=癴ile_upload"祝辞的文件对象:
var file =,零,, var input =, (“# file_upload");美元,//文件域选择文件时,,执行readFile函数, input.addEventListener(& # 39;改变# 39;,readFile, false),, function readFile () {,=,,file  this.files [0];, }
,然后用FormData()送到后台。
, var fd =, new FormData (),, fd.append (“file",,文件),
<强>,2。监听事件:强>给XMLHttpRequest添加上传中的监听事件,可以得到已上传的文件大小,用以实现进度条的显示。
,//监听事件, hr.upload.addEventListener (“progress", uploadProgress,,假),
完整代码如下:
& lt; html>, & lt; head>, & lt; meta charset=皍tf-8"祝辞, & lt; title>进度条测试& lt;/title>, & lt; script 类型=拔谋?javascript" https://www.yisu.com/zixun/, src=" . ./js/jquery-1.11.1.min.js "> 脚本> >头 <身体><字体id=" % "> 0% 身体> <>脚本 var文件=零; $(函数(){ $(" #上传").click(函数(){ 上传(); }); }); var输入=. getelementbyid (“file_upload”);//文件域选择文件时,执行readFile函数 input.addEventListener(‘改变’,readFile假); readFile函数(){ 文件=this.files [0]; }//上传文件 函数上传(){ var xhr=new XMLHttpRequest (); var fd=new FormData (); fd。追加(“文件名”,文件);//监听事件 xhr.upload。addEventListener(“进步”,uploadProgress假);//发送文件和表单自定义参数 xhr。打开(“后”,“. ./UploadServlet”,真的); xhr.send (fd); } 函数uploadProgress (evt) { 如果(evt.lengthComputable) {//evt。加载:文件上传的大小evt.total:文件总的大小 var percentComplete=Math.round ((evt.loaded) * 100/evt.total);//加载进度条,同时显示信息 $ (" # % ")。html (percentComplete + ' % ') $ (" # progressNumber ") . css(“宽度”,“”+ percentComplete +“px”); } }> 脚本