js实现多文件上传,java/.net通用
2012-05-17 15:34
519 查看
首先,将以下js代码放入页面这里我判断的是只能上传xls格式的文件,可以根据自己的需求修改js中的checkExcel方法
<script type="text/javascript"> var __FILE_INDEX = 0; //文件标识 var __LOADING_TIP_DIV = null; var __ICON_PATH = "<%=Request.ApplicationPath%>/Images"; /** * 对选择的文件进行格式校验,只能选择xls格式的文件 */ function checkFile(fileObj) { var objSpan = document.getElementById("span_" + fileObj.id); if (!checkExcel(fileObj.value)) { objSpan.innerHTML = "<img title='错误' src='" + __ICON_PATH + "/check_error.png' border='0'></img><font style='color:red;font-size:12px'>只能导入xls格式文件!</font>" fileObj.errFlag = true; } else { objSpan.innerHTML = "<img title='正确' src='" + __ICON_PATH + "/check_right.png' border='0'></img>" fileObj.errFlag = false; } if (fileObj.value != "" && fileObj.noDelete != "true") { document.getElementById("del_" + fileObj.id).innerHTML = "<span title='删除文件' onclick='deleteFile(\"" + fileObj.id + "\")' style='font-size:12px;color: #4684b2;cursor:pointer;border-bottom:1px solid #4684b2'>删除</span>"; } } /** * 删除选择的文件 */ function deleteFile(fileId) { var trNode = document.getElementById("tr_" + fileId); var trParent = trNode.parentNode; trParent.removeChild(trNode); } /** * excel校验函数 */ function checkExcel(filePath) { var subfix = filePath.substring(filePath.lastIndexOf(".") + 1); if (subfix != "xls") { return false; } return true; } /** * 文件上传时的校验逻辑 */ function excelUpload() { var fileCount = 0; var files = document.getElementsByTagName("INPUT"); for (var i = 0; i < files.length; i++) { if (files[i].type.toLowerCase != 'file') continue; if (files[i].errFlag) { alert("导入的文件只能是xls格式,请重新选择."); files[i].focus(); return; } if (files[i].value != "") fileCount++; } if (fileCount < 1) { alert("请先选择要上传的数据文件!"); return; } document.getElementById("uploadExcelForm").submit(); } /** * 添加文件 */ function addFile() { ++__FILE_INDEX; var fileId = "file" + __FILE_INDEX; var uploadTable = document.getElementById("tableUploadFile") var trElement = uploadTable.insertRow(-1); trElement.id = "tr_" + fileId; var tdElement = trElement.insertCell(-1); tdElement.id = "td_" + fileId; tdElement.innerHTML = "<input type='file' name='" + fileId + "' id='" + fileId + "' size='30' style='padding-left:5px;width:300px;cursor:pointer;' >" + "<span id='span_" + fileId + "'></span>" + "<span id='del_" + fileId + "'></span>"; } </script>
接下来是后台代码:
//保存上传文件 try { for (int i = 0; i < Request.Files.Count; i++) { if (Request.Files["file" + i] != null) { HttpPostedFile filePost = Request.Files["file" + i]; string filename = filePost.FileName; Random rd = new Random(); filename = filename.Substring(filename.LastIndexOf('\\') + 1); string savePath = Server.MapPath("UpLoadFile/" + rd.Next() + filename); filePost.SaveAs(savePath); UpLoadFile upLoadfile = new UpLoadFile(); upLoadfile.FileObj = mubiao.Obj_Id; upLoadfile.FileAddr = savePath; upLoadfile.FileUpLoadDate = DateTime.Now; new UpLoadFileBLL().InsertUpLoadFile(upLoadfile); } } } catch (Exception) { PageMessageBoxShow("文件上传失败!"); }
这里通过循环就可以将文件保存到数据库中,思路很简单。肯定能看懂的。
相关文章推荐
- Java实现拖拽文件上传dropzone.js的简单使用示例代码
- 通用 Java 文件上传和下载组件的设计与实现
- 通用 Java 文件上传和下载组件的设计与实现
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
- 通用 Java 文件上传和下载组件的设计与实现
- Asp.net + js 异步上传文件的例子 - 使用iframe实现
- Java 利用Apache Commons Net 实现 FTP文件上传下载
- asp.net+ajaxfileupload.js 实现文件异步上传代码分享
- struts2实现文件上传进度条(前端JS+Java)(自我整理)
- java简单多线程方式+实现文件上传(spring mvc + jquery.form.js 框架)
- 通用 Java 文件上传和下载组件的设计与实现
- VB.NET客户端调用Axis的Java Web Service实现文件上传
- 通用 Java 文件上传和下载组件的设计与实现
- Atitit 文件上传 架构设计 实现机制 解决方案 实践java php c#.net js javascript c++ python
- Java 利用Apache Commons Net 实现 FTP文件上传下载
- asp.net 基于ajaxfileupload.js 实现文件异步上传
- asp.net+js 实现无刷新上传解析csv文件的代码
- JAVA利用ajaxfileUpload.js和poi实现excel文件上传存取
- c#、asp.net 基于ajaxfileupload.js 实现文件异步上传
- 通用 Java 文件上传和下载组件的设计与实现