javascript对上传文件的相关操作
来源:互联网 发布:派克中性笔 知乎 编辑:程序博客网 时间:2024/06/08 05:18
浏览器内置的file型input元素在表单提交时,会完成向后台传输文件的整个过程,这个例子不关注后台逻辑,只关注前端业务,但是记得不要丢掉enctype="multipart/form-data"。
<form id='fileUpload' enctype="multipart/form-data">
<p><input type="file" name='file1' id='filedemo1'> </p>
<input type="button" id='addFileUpload' value="添加">
<input type="button" id='clearFileUpload' value="清空">
<input type="button" id='fileUploadSub' value="上传">
</form>
<script type="text/javascript">
window.onload = function(){
uploadCount = 1;//增加的文件“input”标示符
isIE = function(){//是否是ie
return document.all ? true : false;
}
getFileSize = function(_f){//获取文件大小
var _fileSize = 0;
if (this.isIE() && !_f.files) {
var filePath = _f.value;
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
if(!fileSystem.FileExists(filePath)){
return 0;
}
var file = fileSystem.GetFile (filePath);
_fileSize = file.Size;
} else {
_fileSize = (_f.files[0] && _f.files[0].size) || 0;
}
return _fileSize;
}
fileType = function(_eForm, types){//限制上传文件的格式
var _elements = _eForm.elements,
_elementsLen = _elements.length
_ei = null,
_v = "",
_contentType = "",
i = 0;
for (; i < _elementsLen ; i++){
_ei = _elements[i];
if(_ei.type == "file"){
//var _i = _ei.value.lastIndexOf("\\");
_v = _ei.value,
_contentType = _v && _v.match(/^(.*)(\.)(.{1,8})$/)[3];
if(!_v || types.search(_contentType) != -1){//如果文件上传为空或者类型为限制类型则返回false
return false;
}
}
}
return true;
}
clearFile = function(_eForm){//清空input为file的ui
var _elements = _eForm.elements,
_elementsLen = _elements.length,
_ei = null,
i = 0;
for (; i < _elementsLen ; i++){
_ei = _elements[i];
(_ei.type == "file") && ((isIE() && (_ei.outerHTML = _ei.outerHTML)) || (_ei.value = ""));//如果为IE,利用其特性清空file文本数据,否则直接将value设置为空值
}
}
fileUpload = function(){//上传文件的相关业务
var _fileUpload = document.getElementById("fileUpload"),
_addFileUpload = document.getElementById("addFileUpload"),
_clearFileUpload = document.getElementById("clearFileUpload"),
_filedemo1 = document.getElementById("filedemo1"),
_fileUploadSub = document.getElementById("fileUploadSub");
_fileUploadSub.onclick =function(){
alert("测试获取文件大小:" + getFileSize(_filedemo1));//获取上传文件的大小
if(!fileType(_fileUpload, "text")){//限制上传文件的格式 ---参数(上传文件的表单对象, 被限制的格式)
return;
}
}
_clearFileUpload.onclick =function(){//清除上传文件的内容
clearFile(_fileUpload);
}
_addFileUpload.onclick =function(){//动态多文件上传,添加上传文件元素
uploadCount++;
var _input=document.createElement("input"),
_pE=document.createElement("p");
_input.name="filedemo"+uploadCount;
_input.id="filedemo"+uploadCount;
_input.type="file";
_pE.appendChild(_input);
_fileUpload.insertBefore(_pE,document.getElementById("addFileUpload"));
}
}
fileUpload();
};
</script>
- javascript对上传文件的相关操作
- javaScript对文件的操作
- Javascript对文件的操作
- linux 中对文件的相关操作
- .net 对文件的相关操作
- Hipi 文件操作的相关方法(上传图片部分)
- javascript实现对文件上传类型的限制
- 对自己建立的INI文件的相关操作函数
- android--对SD卡进行相关文件的操作
- Linux下对文件权限的相关操作
- hadoop之HDFS对文件的相关操作
- 救急,非IE浏览器实现Javascript对文件上传与下载操作
- 文件的操作上传
- 文件上传的相关方法
- 文件的相关操作
- 文件的相关操作
- 对单链表的相关操作
- 对窗口的相关操作
- MyApplication
- angularjs过滤器
- 表格的添加删除加省级联动效果
- 迷茫的时候要做些什么,未来才不会后悔
- andriodjie——mvp展示拦截器传来的数据跳转购物车
- javascript对上传文件的相关操作
- [简单逻辑学]逻辑学的基本原理——从全称到特称
- H5新增特性
- unity3D基础之渲染管线的设计方法学习路线 讲义源码
- messenger进程之间的通讯
- 父级元素的 font-size:0 解决子代的inline或inlien-block的换行或图片空隙问题
- TCP/IP协议族【第8章地址解析协议APR】
- JavaScript 创建、插入和删除元素
- JAVA构造器