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 相关文章推荐
Javascript Select操作大集合
May 26 Javascript
JavaScript新窗口与子窗口传值详解
Feb 11 Javascript
Javascript代码实现仿实例化类
Apr 03 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
Jan 22 Javascript
jQuery封装的屏幕居中提示信息代码
Jun 08 Javascript
webpack中引用jquery的简单实现
Jun 08 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
Oct 19 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
Nov 02 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
JS实现判断数组是否包含某个元素示例
May 24 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
Jun 05 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常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php获取数组长度的方法(有实例)
2013/10/27 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
2013/07/04 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
初探nodeJS
2017/01/24 NodeJs
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
pandas中DataFrame修改index、columns名的方法示例
2019/08/02 Python
高级文秘工作总结的自我评价
2013/09/28 职场文书
建筑专业自荐信
2013/10/18 职场文书
项目经理岗位职责
2013/11/11 职场文书
采购文员岗位职责
2013/11/20 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
学生鉴定评语大全
2014/05/05 职场文书
劳资员岗位职责
2015/02/13 职场文书
清洁员岗位职责
2015/02/15 职场文书
留学推荐信英文范文
2015/03/26 职场文书
校长一岗双责责任书
2015/05/09 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
七夕情人节问候语
2015/11/11 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
Python序列化与反序列化相关知识总结
2021/06/08 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技