JS+html5实现异步上传图片显示上传文件进度条功能示例


Posted in Javascript onNovember 09, 2019

本文实例讲述了JS+html5实现异步上传图片显示上传文件进度条功能。分享给大家供大家参考,具体如下:

<html>
  <head>
  </head>
  <body>
      <p>
  emo_album_id:<input type="text" name="emo_album_id" id="emo_album_id" value='1'>
</p>
<p>
  name:<input type="text" name="title" id="title">
</p>
      <div class="row">
        <label for="file">
          Upload Image:</label>
        <input type="file" name="fileToUpload" id="fileToUpload" multiple="multiple" onchange="fileSelected();" />
      </div>
SentenceMovie[photo]
      <div id="fileName">
      </div>
      <div id="fileSize">
      </div>
      <div id="fileType">
      </div> 
      <div id="progressNumber">
      </div>
    <script>
          function fileSelected() {
            var file = document.getElementById('fileToUpload').files[0];
            if (file) {
              var fileSize = 0;
              if (file.size > 1024 * 1024)
                fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';
              else
                fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';
              document.getElementById('fileName').innerHTML = 'Name: ' + file.name;
              document.getElementById('fileSize').innerHTML = 'Size: ' + fileSize;
              document.getElementById('fileType').innerHTML = 'Type: ' + file.type;
              uploadFile();
            }
          }
          function uploadFile() {
            var fd = new FormData();
            fd.append("upload_file", document.getElementById('fileToUpload').files[0]);
            fd.append("emo_album_id", document.getElementById('emo_album_id').value);
            fd.append("title", document.getElementById('title').value);
            var xhr = new XMLHttpRequest();
            xhr.upload.addEventListener("progress", uploadProgress, false);
            xhr.addEventListener("load", uploadComplete, false);
            xhr.addEventListener("error", uploadFailed, false);
            xhr.addEventListener("abort", uploadCanceled, false);
            xhr.open("POST", "http://mysae.com/emotions/1/api/index.php/emo/upload");
            xhr.send(fd);
          }
          function uploadProgress(evt) {
            if (evt.lengthComputable) {
              var percentComplete = Math.round(evt.loaded * 100 / evt.total);
              document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';
            }
            else {
              document.getElementById('progressNumber').innerHTML = 'unable to compute';
            }
          }
          function uploadComplete(evt) {
            /* This event is raised when the server send back a response */
            alert(evt.target.responseText);
          }
          function uploadFailed(evt) {
            alert("There was an error attempting to upload the file.");
          }
          function uploadCanceled(evt) {
            alert("The upload has been canceled by the user or the browser dropped the connection.");
          }
    </script>
  </body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
动态修改DOM 里面的 id 属性的弊端分析
Sep 03 Javascript
jquery 设置style:display的方法
Jan 29 Javascript
JavaScript的事件代理和委托实例分析
Mar 25 Javascript
JS实现霓虹灯文字效果的方法
Aug 06 Javascript
jQuery实现的倒计时效果实例小结
Apr 16 Javascript
总结在前端排序中遇到的问题
Jul 19 Javascript
javascript 定时器工作原理分析
Dec 03 Javascript
AngularJS的ng-click传参的方法
Jun 19 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
May 21 Javascript
小程序实现发表评论功能
Jul 06 Javascript
express express-session的使用小结
Dec 12 Javascript
JavaScript中isPrototypeOf函数
Nov 07 Javascript
js实现的在本地预览图片功能示例
Nov 09 #Javascript
vue 取出v-for循环中的index值实例
Nov 09 #Javascript
Vue v-for循环之@click点击事件获取元素示例
Nov 09 #Javascript
Vue实现页面添加水印功能
Nov 09 #Javascript
vue 实现特定条件下绑定事件
Nov 09 #Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
Nov 09 #Javascript
vue 根据选择条件显示指定参数的例子
Nov 09 #Javascript
You might like
php设计模式 Template (模板模式)
2011/06/26 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
phpfpm的作用和用法
2019/10/10 PHP
[原创]图片分页查看
2006/08/28 Javascript
javascript String 的扩展方法集合
2008/06/01 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
在for循环中length值是否需要缓存
2015/07/27 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
jQuery validata插件实现方法
2017/06/25 jQuery
9种改善AngularJS性能的方法
2017/11/28 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Vue2.0 ES6语法降级ES5的操作
2020/10/30 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
Python中optparse模块使用浅析
2015/01/01 Python
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
对于Python装饰器使用的一些建议
2015/06/03 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
印度网上药店:1mg
2017/10/13 全球购物
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
三方合作协议书范本
2014/04/18 职场文书
个人委托书
2014/07/31 职场文书
党员个人公开承诺书
2014/08/29 职场文书
售房委托书
2014/08/30 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python