HTML5_纯JS实现上传文件显示文件大小,文件信息,上传进度_不使用JS库
2014-11-07 00:57
936 查看
前台 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";
}
<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";
}
相关文章推荐
- 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器
- HTML5结合ajax实现文件上传以及进度显示
- 基于HTML5 Ajax实现文件上传并显示进度条
- html5用ajax方式实现文件上传并显示进度
- HTML5上传文件显示进度的实现代码
- 用html5 canvas js 实现图片大小的压缩显示,图片上传后可在线预览。
- JS实现批量上传文件并显示进度功能
- JAVA实现大文件上传及显示进度信息
- 利用js实现无刷新上传头像(或文件)并显示进度条
- (二)使用libcurl实现获取目标文件大小, 下载进度显示, 断点续传等功能
- 使用Html5实现异步上传文件,支持跨域,带有上传进度条
- 使用Retrofit2.0实现Google Drive文件上传进度显示
- 使用JS实现在客户端判断上传文件大小
- 使用struts2和AJAX实现文件上传并显示进度条
- 使用struts2和AJAX实现文件上传并显示进度条
- 使用JS实现在客户端判断上传文件大小
- html5中的input(type="file")的multiple属性,实现多文件上传,并用js控制文件大小,数量
- 基于HTML5 Ajax实现文件上传并显示进度条
- 基于HTML5 Ajax实现文件上传并显示进度条