HTML5上传文件显示进度的实现代码

2016-02-19 12:45 3 1 收藏

今天图老师小编给大家介绍下HTML5上传文件显示进度的实现代码,平时喜欢HTML5上传文件显示进度的实现代码的朋友赶紧收藏起来吧!记得点赞哦~

【 tulaoshi.com - Web开发 】

这里我们是结合Asp.net MVC做为服务端,您也可以是其它的服务端语言。让我们看面这个片断的HTML:

复制代码代码如下:
@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" , id="form1"}))
{
div class="row"
label for="file"
Upload Image:/label
input type="file" name="fileToUpload" id="fileToUpload" multiple="multiple" onchange="fileSelected();" /
/div
div id="fileName"
/div
div id="fileSize"
/div
div id="fileType"
/div
div class="row"
input type="button" onclick="uploadFile()" value="Upload Image" /
/div
div id="progressNumber"
/div
}

相关的Javascript是这样的:

复制代码代码如下:
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;
}
}
function uploadFile() {
var fd = new FormData();
fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
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", "Home/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.");
}

上面是就原生的Javascript,在onchange事件执行fileSelected的function,在点击button执行了uploadFile的function,这里使用XMLHttpRequest实现ajax上传文件。 注意代码在Firefox 14 可以工作,IE 9目前不支持file api,可以参加这里。 服务端的代码很简单:

复制代码代码如下:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
/// summary
/// Uploads the specified files.
/// /summary
/// param name="fileToUpload"The files./param
/// returnsActionResult/returns
[HttpPost]
public ActionResult Upload(HttpPostedFileBase[] fileToUpload)
{
foreach (HttpPostedFileBase file in fileToUpload)
{
string path = System.IO.Path.Combine(Server.MapPath("~/App_Data"), System.IO.Path.GetFileName(file.FileName));
file.SaveAs(path);
}
ViewBag.Message = "File(s) uploaded successfully";
return RedirectToAction("Index");
}
}

作者:Petter Liu

来源:https://www.tulaoshi.com/n/20160219/1601779.html

延伸阅读
标签: Web开发
翻开的2张牌如果配对就会消除,否则2张牌都会返回背面。 需求分析 怎么绘制正的牌面和背的牌面及配对成功后怎么消除牌面 怎么生成牌组并且确定每张牌的位置和对应的图片 怎么洗牌 怎么记录牌组的配对信息 怎么确定点击事件是第一次点击还是第二次点击 作弊事件的处理:两次点击同一张牌 点击已经消除的牌面 点击牌面之外的区域...
标签: Web开发
前台: upload.htm 代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head runat="server" titleupload/title link href="upload.css" rel="Stylesheet" / /head body form ul li button id="S...
标签: Web开发
HTML5之前,要实现网页元素的拖放操作,需要依靠mousedown、mousemove、mouseup等API,通过大量的JS代码来实现;HTML5中引入了直接支持拖放操作的API,大大简化了网页元素的拖放操作编程难度,并且这些API除了支持浏览器内部元素的拖放外,同时支持浏览器和其它应用程序之间的数据互相拖动。 本文通过一个简单示例,演示HTML5中拖放API的使用...
标签: Web开发
其实我本来的计划是做网页设计师的,可是没有人认为我设计的好,哥到现在还没有工作,发泄一下,不多说了。 效果图 需要用到的图片: 背景图片: 进度显示图片: 网页结构: 代码如下: div div/div divdiv/div/div /div css代码: 代码 代码如下: #center{ margin:50px auto; width:400px; } #loading{ wid...
标签: Web开发
1.引言 2.实现代码 2.1.服务器端代码 2.1.1. 文件上传状态类(FileUploadStatus) 2.1.2. 文件上传状态侦听类(FileUploadListener) 2.1.3. 后台服务类(BackGroundService) 2.1.4. 文件上传状态控制类(BeanControler) 2.2. 客户端代码 2.2.1. AjaxWrapper.js 2.2.2. fileUpload.html 2.2.3. result.jsp 2.2.4. fileUpload.css 2.3. 配置文...

经验教程

586

收藏

26
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部