HTML5 Ajax文件上传进度条如何显示

这篇文章主要介绍了html5 ajax文件上传进度条是如何显示的,基于原生html5实现,不需要falsh支持,进度可以自定义显示,控制灵活,对html5上传进度条感兴趣的小伙伴们可以参考一下

原本打算使用jquery插件进行异步文件上传,比如uploadfy但是需要额外的支持,也有人用iframe模仿异步上传机制,感觉都比较别扭。因为项目不考虑低版本浏览器,所以决定用html5实现。下面只是一个简单的demo,具体样式需要自己去做。
后台基于strut2进行文件处理,具体因项目而定。只是要注意设置文件大小的限制。  这个配置根据具体情况设定,超过此值会报404.
首先是上传页面,比较简单,附带了文件上者这个参数。

upload.jsp

  使用XMLHttpRequest上传文件  var xhr = new XMLHttpRequest();  //监听选择文件信息 function fileSelected() {  //HTML5文件API操作  var file = document.getElementById('fileName').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;  }  }  //上传文件 function uploadFile() {  var fd = new FormData();  //关联表单数据,可以是自定义参数  fd.append("name", document.getElementById('name').value);  fd.append("fileName", document.getElementById('fileName').files[0]);  //监听事件  xhr.upload.addEventListener("progress", uploadProgress, false);  xhr.addEventListener("load", uploadComplete, false);  xhr.addEventListener("error", uploadFailed, false);  xhr.addEventListener("abort", uploadCanceled, false);  //发送文件和表单自定义参数  xhr.open("POST", "/user/uploadifyTest_doUpload");  xhr.send(fd);  } //取消上传 function cancleUploadFile(){ xhr.abort(); }  //上传进度 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) {  //服务断接收完文件返回的结果  alert(evt.target.responseText); }  //上传失败 function uploadFailed(evt) {  alert("上传失败"); } //取消上传 function uploadCanceled(evt) {  alert("您取消了本次上传."); } 

上传者:

fd.append(“name”, document.getElementById(‘name’).value);
fd.append(“fileName”, document.getElementById(‘fileName’).files[0]);
这两句是把数据绑定到表单。因为html5支持多文件上传,所以
document.getElementById(‘fileName’).files
返回的是数组。这里只有一个文件所以取下标0的元素。

xhr.upload.addEventListener(“progress”, uploadProgress, false);

立即学习“前端免费学习笔记(深入)”;

xhr.addEventListener(“load”, uploadComplete, false);

xhr.addEventListener(“error”, uploadFailed, false);

xhr.addEventListener(“abort”, uploadCanceled, false);
这里绑定进度、上传、错误、中断的事件,提供一些交互。文件进度显示就是在progress回调中进行显示的。
然后贴上后台代码和action配置,UploadifyTestAction.java

package com.bjhit.eranges.actions.test;import java.io.File;import com.opensymphony.xwork2.ActionSupport;public class UploadifyTestAction extends ActionSupport { private static final long serialVersionUID = 837481714629791752L; private File fileName; private String name; private String responseInfo; public String doUpload() throws Exception { System.out.println(name); File myFile = fileName; System.out.println(myFile.getName()); responseInfo = "上传成功!"; return "doUpload"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public File getFileName() { return fileName; } public void setFileName(File fileName) { this.fileName = fileName; } public String getResponseInfo() { return responseInfo; } public void setResponseInfo(String responseInfo) { this.responseInfo = responseInfo; }}

action配置

  responseInfo true 

以上就是本篇文章的所有内容了,希望对大家学习提供到帮助!!

相关推荐:

原生js实现html5打砖块小游戏的方法

Ajax实现无闪烁定时刷新页面实例代码

有关Ajax中get和post的使用问题

以上就是HTML5 Ajax文件上传进度条如何显示的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1545431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 16:59:23
下一篇 2025年12月21日 16:59:35

相关推荐

  • 巧用HTML5给按钮背景设计不同的动画

    如何巧用html5设计按钮背景不同动画特效,在该特效中,当鼠标滑过按钮时,使用css3   animation 来动画   background-size  和  background-position  属性,来实现各种背景动画效果。本文就和大家分享html5给按钮背景设计不同的动画简单实例。小编…

    2025年12月21日 好文分享
    000
  • 用h5做出微信的支付过程的实现步骤

    这次给大家实现的案例是用户在微信里打开网页的时候,也可以调用微信支付来完成下单功能。当然,微信官网的,开发文档也有很详细的介绍,但是今天我们来教大家怎样手动做出支付接口的开发。 以提交问题流程为例描述分答微信h5支付过程 1、提交问题domobiletutor方法 (1)费用 (2)支付说明 (3)…

    2025年12月21日
    000
  • 用H5做有特效的下拉框

    今天教大家如何用h5做出一个有小特效的下拉框。当你点击下拉框的内容会就出现在文本域中的一个小特效,下面来看一下详细案列代码。 HTML中有个下拉框,包含“风,雨,雷,电”,添加事件,当选择风时,文本域内出现选择 Title 风 雨 雷 电 function ShowToText(){ documen…

    好文分享 2025年12月21日
    000
  • html5中的DOM编程的实现步骤

    这次给大家介绍什么是dom编程,我们知道,dom是documentobjectmodel的缩写,中文名称是文档对象模型。同时dom也是处理html页面的标准编程接口,那么我们为什么要学习dom呢? 1,DOM可以让用户对网页元素进行交互操作 比如,当我点击了一个按钮,弹出一个对话框等操作。 2,DO…

    好文分享 2025年12月21日
    000
  • 服务端主动发送数据回客户端在H5里的实现步奏

    我们知道,在server sent event里,通过eventsource对象接收服务器发送事件的通知是有三个事件的,message, open, error这三种,今天就给大家演示一下服务端主动发送数据回客户端在h5里的实现步奏。 Server Sent Event Server Sent Ev…

    好文分享 2025年12月21日
    000
  • H5的多线程如何实现Web Worker

    很多人问过我,h5的多线程如何实现web worker的?当我们说到这个问题的时候首先你需要知道,什么是web worker,那么今天就来给大家解答下这个问题。 将JavaScript代码交给Web Worker在后台执行时,页面就可以在JavaScript运行期间依然可以响应用户操作,以防止出现页…

    好文分享 2025年12月21日
    000
  • h5里js和servlet实现文件上传的实现步骤

    这次教大家的是在h5里如何用js和servlet来实现文件上传,不过有一个前提条件,必须要是h5和jsp3.0版本,因为用到了新属性,获取file对象和后台得到part对象。 下面给大家看一个案列 前台jsp Insert title here name: 文件: 提交 function btu()…

    好文分享 2025年12月21日
    000
  • H5做出手机摇一摇功能的实现步骤

    今天教大家用html5来在网页里实现一个很炫酷的功能,手机摇一摇。如果你之前做过手机端的开发,可能对于这样的功能非常了解。但是下面,我们将在web上首次实现这个功能。 方向事件deviceorientation 该事件实在设备方向发生变化时触发, 使用方法如下; window.addEventLis…

    好文分享 2025年12月21日
    000
  • H5中的弹窗无法用webview弹出怎么解决

    我们偶尔会用到这样一种bug,虽然使用了webview,但是还无法吊起h5中的弹窗。那么怎么解决这个问题呢?我们来看一下。 问题: webview无法吊起H5中的弹窗。 解决方法: 如果是fragment,必须使用getactivity()上下文,不能用全家上下文,否则无法弹窗。 mWebView.…

    好文分享 2025年12月21日
    000
  • html5制作转盘的详解及实例

    今天给大家带来的案列是html5转盘实例,可以直接拿来做抽奖程序,有需要的朋友可以拿去使用,下面是案列代码。 html5制作转盘游戏 h1{ width: 100%; height: 3rem; line-height: 3rem; font-size: 1.8rem; color:#c60; te…

    好文分享 2025年12月21日
    000
  • HTML5中的progress元素的详细介绍及兼容性处理

    本篇文章主要为大家介绍,progress元素的基本属性以及兼容性处理。介绍完progress元素后,下面一个案列也帮助大家更好的理解,一起来看一下。、 一、progress元素基本了解 1.基本UI progress元素属于HTML5家族,指进度条。IE10+以及其他靠谱浏览器都支持。如下简单cod…

    好文分享 2025年12月21日
    000
  • 浏览器兼容HTML5和CSS3的问题

     html5和css3是非常好用并且功能强大的新属性,唯一的重大缺陷就是可能很多旧版浏览器不兼容,今天就给大家分享一下关于旧版的浏览器兼容html5和css3的问题。 1.让老式浏览器支持HTML5  HTML5能为我们做的事儿很多,最为可口的就是语义化标签的应用,如果你已经在Chrome或者其他支…

    好文分享 2025年12月21日
    000
  • H5里的postMessage API图文详解 详细介绍

    关于postmessage,虽然说是html5的功能但是支持ie8+,假如你的网站不需要支持ie6和ie7,那么可以使用window.postmessage。既可以跨域传递,也可以同域传递。 我只是简单的举一个应用场景,当然,这个功能很多地方可以使用。 假如你有一个页面,页面中拿到部分用户信息,点击…

    好文分享 2025年12月21日
    000
  • HTML5标签嵌套规则的详细介绍

    下面给大家带来一份html5标签嵌套规则的详细介绍,总结归纳的非常不错,值得大家作为参考,一起来看一下。 [1]分类 [2]子元素 [3]总结 前面的话   在html5中,元素的子元素可以是块级元素,这在以前是被认为不符合规则的。本文将详细介绍html5的标签嵌套规则 分类   html5出现之前…

    好文分享 2025年12月21日
    000
  • 用H5制作烟花粒子特效的制作方法

    这次给大家带来用h5制作烟花粒子特效的制作方法,怎么用h5制作特效?h5制作烟花粒子特效的流程,h5制作烟花粒子特效的注意事项有哪些,一起来看一下。 Canvas烟花粒子特效制作 Canvas is not supported by your browser. Css部分:* { margin: 0…

    好文分享 2025年12月21日
    000
  • 用H5制作水滴特效教程

    给大家带来用h5制作h5制作水滴特效教程,怎么用h5制作特效?h5制作水滴特效的流程,h5制作水滴特效的注意事项有哪些,一起来看一下。 利用canvas 画布制作逼真的水滴特效 /* NOTE: The styles were added inline because Prefixfree need…

    好文分享 2025年12月21日
    000
  • 用H5和CSS3制作全屏背景轮换播放教程

    这次给大家带来用h5和css3制作全屏背景轮换播放的制作方法,怎么用h5制作特效?h5和css3在使用过程中的注意事项有哪些,下面就是实战案例,一起来看一下。 全屏背景轮换播放 #bg{ position:fixed; top:0; left:0; bottom:0; right:0; z-inde…

    好文分享 2025年12月21日
    000
  • HTML5响应式banner制作教程

    这次给大家带来用html5响应式banner制作方法,怎么用h5制作特效?html5响应式banner的注意事项有哪些,下面就是实战案例,一起来看一下。 HTML5响应式banner MULTIPURPOSE THEME CRAS JUSTO ODIO, DAPIBUS AC FACILISIS R…

    好文分享 2025年12月21日
    000
  • HTML5视频音频实现步骤

    我们知道,常见的视频格式的组成部分有:画面、音频、编码格式,常见的音频格式有音频编码:acc、mp3、vorbis,在html5里,支持的视频格式有三种,今天就来说一下html5视频音频实现步骤 HTML5支持的视频格式:          Ogg=带有Theora视频编码+Vorbis音频编码的O…

    好文分享 2025年12月21日
    000
  • HTML5的新增了哪些标签元素

    大家知道h5新增了不少的元素标签,那么我们就给大家总结归纳一下,h5增加了哪些标签?这些标签都有什么作用。 Input  type=“XXX” Email 邮箱: 提示格式不正确 url   地址  :地址格式:http://www….. Number:数值型  立即学习“前端免费学习笔…

    好文分享 2025年12月21日
    000

发表回复

登录后才能评论
关注微信