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 相关文章推荐
JQuery记住用户名和密码的具体实现
Apr 04 Javascript
jquery制作属于自己的select自定义样式
Nov 23 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
Sep 14 Javascript
js实现模糊匹配功能
Feb 15 Javascript
JS实现图片预览的两种方式
Jun 27 Javascript
vue单页缓存存在的问题及解决方案(小结)
Sep 25 Javascript
在element-ui的select下拉框加上滚动加载
Apr 18 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
May 09 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
Jun 21 Javascript
解决layui 三级联动下拉框更新时回显的问题
Sep 03 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 Javascript
JS跨浏览器解析XML应用过程详解
Oct 16 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实现的MySQL通用查询程序
2007/03/11 PHP
解析PHP多种序列化与反序列化的方法
2013/06/06 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
JQuery与iframe交互实现代码
2009/12/24 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
JS中使用变量保存arguments对象的方法
2016/06/03 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
Python的Django框架中settings文件的部署建议
2015/05/30 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
教师师德反思材料
2014/02/15 职场文书
村庄绿化方案
2014/05/07 职场文书
重温入党誓词主持词
2015/06/29 职场文书
python pygame 开发五子棋双人对弈
2022/05/02 Python