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 相关文章推荐
很全的显示阴历(农历)日期的js代码
Jan 01 Javascript
动态样式类封装JS代码
Sep 02 Javascript
JavaScript 判断指定字符串是否为有效数字
May 11 Javascript
jquery怎样实现ajax联动框(一)
Mar 08 Javascript
jquery实现盒子下拉效果示例代码
Sep 12 Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
Dec 10 Javascript
详解jquery事件delegate()的使用方法
Jan 25 Javascript
JavaScript基础重点(必看)
Jul 09 Javascript
AngularJS  $on、$emit和$broadcast的使用
Sep 05 Javascript
JS 设置Cookie 有效期 检测cookie
Jun 15 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 Javascript
Vue父组件向子组件传值以及data和props的区别详解
Mar 02 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使用Jpgraph创建折线图效果示例
2017/02/15 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
在vue中读取本地Json文件的方法
2018/09/06 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
H5实现手机拍照和选择上传功能
2019/12/18 Javascript
详解Python中列表和元祖的使用方法
2015/04/25 Python
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
Python 数据结构之队列的实现
2017/01/22 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
使用python画社交网络图实例代码
2019/07/10 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
中间件分为哪几类
2016/09/18 面试题
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
民族学专业求职信
2014/07/28 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
上课迟到检讨书
2015/05/06 职场文书
升学宴家长致辞
2015/07/27 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS