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 相关文章推荐
分享10篇优秀的jQuery幻灯片制作教程及应用案例
Apr 16 Javascript
AngularJS基础知识笔记之过滤器
May 10 Javascript
跟我学习javascript的执行上下文
Nov 18 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
Dec 03 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
Mar 09 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
Oct 13 Javascript
javascript 显示全局变量与隐式全局变量的区别
Feb 09 Javascript
基于jQuery的表单填充实例
Aug 22 jQuery
JS使用正则表达式找出最长连续子串长度
Oct 26 Javascript
浅谈vue项目如何打包扔向服务器
May 08 Javascript
详解vue中router-link标签所必备了解的属性
Apr 15 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
Sep 23 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
ThinkPHP中session函数详解
2016/09/14 PHP
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
iscroll.js的上拉下拉刷新时无法回弹的解决方法
2016/02/18 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
js里面的变量范围分享
2020/07/18 Javascript
python:print格式化输出到文件的实例
2018/05/14 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
学习python可以干什么
2019/02/26 Python
python中删除某个元素的方法解析
2019/11/05 Python
Python图片的横坐标汉字实例
2019/12/04 Python
Python class的继承方法代码实例
2020/02/14 Python
《再见了,亲人》教学反思
2014/02/26 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
goland 设置project gopath的操作
2021/05/06 Golang
详解Python魔法方法之描述符类
2021/05/26 Python