HTML5_纯JS实现上传文件显示文件大小,文件信息,上传进度_不使用JS库

前台 html
<input type="file" id="_netLogo" onchange="fileSelected();">
<div id="fileName">
</div>
<div id="fileSize">
</div>
<div id="fileType">
</div>
<div id="progressNumber">
</div>
<button type="button" class="btn btn-default" onclick="uploadFile()">上传</button>

前台JS

<script type="text/javascript">

function fileSelected() {
var file = document.getElementById(‘_netLogo‘).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("_netLogo", document.getElementById(‘_netLogo‘).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.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.open("POST", "/User/WNetEdit2_test");
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>

后台 测试函数

public string WNetEdit2_test()
{
var f = Request.Files[0];
string path = System.IO.Path.Combine(Server.MapPath("~/App_Data"), System.IO.Path.GetFileName(f.FileName));
f.SaveAs(path);
return "File(s) uploaded successfully";
}

时间: 2024-10-12 13:14:46

HTML5_纯JS实现上传文件显示文件大小,文件信息,上传进度_不使用JS库的相关文章

慧自文档:代替 Everything 来快速查找文件的,实现文件显示在文件夹的层次结构中

1. 搜索功能和Everything一样快和强大      具有 Everything 搜索快.搜索功能强等优点,      解决了不能方便选择搜索哪个文件夹,      解决了不能同一个画面进行预览等问题   2.文件直接显示到文件夹的层次结构中     非常直观,很有利于快速找文档   3. 很方便就可以指定要搜索的文件夹      因为集成了"Windows资源管理器"放在"目录栏"   4. 同一个画面的快速预览.嵌入预览        更方便排查以找到目标

[JS]在js中进行正则替换显示高亮处理中,重复替换问题,可以使用js自带的批量替换,则不会重复替换

//js高亮显示 function highlight(){    if($.trim($('#pscws').val()) != ''){        var url = $("#analysis_url").val();        $.ajax({            url:url,            data:{words:$('#pscws').val()},            dataType:'json',            type:'POST', 

【Servlet】利用Servlet3.0标准与JSTL表达式实现文件上传系统,支持图片上传后显示

伴随着JDK1.6一起出现的Servlet3.0标准,使得JSP的文件上传系统不再艰难,此前在JSP的文件上传系统需要<[Jsp]使用jspsmartupload完成简单的文件上传系统>(点击打开链接)类似这样的插件才能完成的文件上传系统,还不支持中文,使得各位程序猿掏空心思才能解决这个问题.现在Servlet3.0对文件上传的方法进行封装,无须分块就可以实现.而且Servlet3.0还不用类似<[Servlet]最简单的Servlet JavaWeb程序>(点击打开链接)在web

轻量级 web 文件上传组件,纯js,html5、html4智能适配,支持上传进度显示(IE10+、标准浏览器)

老早就注册了博客园帐号,昨天才发现,连博客都没开,Github也是一样,深觉惭愧,赶紧潜个水压压惊`(*∩_∩*)′ 言归正传.大概许多人都会用到文件上传的功能,上传的库貌似也不少,比如(jQuery File Uploader.FineUploader.Uploadify.Baidu Web Uploader 等等),功能都很强大,代码量一般也较大.当时心想,就这么个小功能,杀鸡焉用牛刀,用库的话还得熟悉它的用法,有的需要引入额外的库,纯Flash的不考虑,还是动手造个轮子得了,至少造过之后能

原生js上传文件 显示进度条

最近在做文件上传的功能,因为界面设计比较简单,就没有引用jq,但是网上大部分的上传插件都需要jq的支持.为了一个上传功能引用90多k的jq文件有点太小题大做了,所以就自己动手写了一个原生js上传的demo.下面是代码: HTML代码 <html> <head> <title></title> </head> <body> <input type="file" id="f" /> &l

Asp.Net 无刷新文件上传并显示进度条的实现方法及思路

相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦苦来 实现呢?我并不否认"拿来主义",只是我个人更喜欢凡是求个所以然.本篇将阐述通过Html,IHttpHandler和 IHttpAsyncHandler实现文件上传和上传进度的原理,希望对你有多帮助. 效果图: 本文涉及到的知识点:1.前台用到Html,Ajax,JQuery,JQuery UI 2.后台用到一般处理程序(IHttpHandler)和

【原创】用JAVA实现大文件上传及显示进度信息

用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 一. 大文件上传基础描述: 各种WEB框架中,对于浏览器上传文件的请求,都有自己的处理对象负责对Http MultiPart协议内容进行解析,并供开发人员调用请求的表单内容. 比如: Spring 框架中使用类似CommonsMultipartFile对象处理表二进制文件信息. 而.NET 中使用HtmlInputFile/ HttpPostedFile对象处理二进制文件信息. 优点:使用框架内置对象可以很方便的

ajaxfileupload.js插件结合一般处理文件实现Ajax无刷新上传

先上几张图更直观展示一下要实现的功能.本功能主要通过Jquery ajaxfileupload.js插件结合ajaxUpFile.ashx一般应用程序处理文件实现Ajax无刷新上传功能,结合NPOI2.0实现数据读取.这个功能在实际工作种经经常使用到,希望能给须要做这方面的人有些帮助. 一.功能页面布局及介绍 1.上传页面布局及input file上传功能 2.上传页面文件正在上传效果 3.上传完毕效果,多文件展示区 二.功能代码实现及资源引用 1.js资源文件引用 html页面js引用.须要引

图片上传及显示(包含多文件)

前一段时间用到文件上传,好久没有写这个东西,有的东西也忘记了.所以本篇博客BZ决定记载一下,一方面自己回顾加深一下,另一方面供各位程序员学习. 希望大神们对本文不对的地方进行批评指正! 先在我们的html页面写上上传文件的文本框及图片显示所在的DIV,如下: 1 <div class="form-group"> 2 <label class="col-sm-2 control-label no-padding-right" id="lb_