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引导程序
Oct 26 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
AngularJS实现表单手动验证和表单自动验证
Dec 09 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
Feb 19 Javascript
基于Vue实例生命周期(全面解析)
Aug 16 Javascript
详解Vue快速零配置的打包工具——parcel
Jan 16 Javascript
JavaScript执行环境及作用域链实例分析
Aug 01 Javascript
解决vue的 v-for 循环中图片加载路径问题
Sep 03 Javascript
基于vue实现移动端圆形旋钮插件效果
Nov 28 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
Jul 24 Javascript
Node使用Nodemailer发送邮件的方法实现
Feb 24 Javascript
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
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 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
用javascript做拖动布局的思路
2008/05/31 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
jquery ajax执行后台方法
2010/03/18 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
cookie的secure属性详解
2015/04/08 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
vue实现验证码输入框组件
2017/12/14 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
基于python实现KNN分类算法
2020/04/23 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
numpy实现RNN原理实现
2021/03/02 Python
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
android面试问题与答案
2016/12/27 面试题
UNIX文件名称有什么规定
2013/03/25 面试题
音乐教育感言
2014/03/05 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
绵山导游词
2015/02/05 职场文书
离婚协议书格式范本
2016/03/18 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python