js实现多文件上传


首先,将以下js代码放入页面这里我判断的是只能上传xls格式的文件,可以根据自己的需求修改js中的checkExcel方法


[javascript]  view plain copy
  1. </pre><pre name="code" class="javascript"><script type="text/javascript">  
  2.     var __FILE_INDEX = 0; //文件标识     
  3.     var __LOADING_TIP_DIV = null;  
  4.     var __ICON_PATH = "<%=Request.ApplicationPath%>/Images";  
  5.     /**   
  6.     * 对选择的文件进行格式校验,只能选择xls格式的文件   
  7.     */  
  8.     function checkFile(fileObj) {  
  9.         var objSpan = document.getElementById("span_" + fileObj.id);  
  10.         if (!checkExcel(fileObj.value)) {  
  11.             objSpan.innerHTML = "<img title='错误' src='" + __ICON_PATH + "/check_error.png' border='0'></img><font style='color:red;font-size:12px'>只能导入xls格式文件!</font>"  
  12.             fileObj.errFlag = true;  
  13.         } else {  
  14.             objSpan.innerHTML = "<img title='正确' src='" + __ICON_PATH + "/check_right.png' border='0'></img>"  
  15.             fileObj.errFlag = false;  
  16.         }  
  17.         if (fileObj.value != "" && fileObj.noDelete != "true") {  
  18.             document.getElementById("del_" + fileObj.id).innerHTML = "<span title='删除文件' οnclick='deleteFile(\"" + fileObj.id + "\")' style='font-size:12px;color: #4684b2;cursor:pointer;border-bottom:1px solid #4684b2'>删除</span>";  
  19.         }  
  20.     }  
  21.   
  22.     /**   
  23.     * 删除选择的文件   
  24.     */  
  25.     function deleteFile(fileId) {  
  26.         var trNode = document.getElementById("tr_" + fileId);  
  27.         var trParent = trNode.parentNode;  
  28.         trParent.removeChild(trNode);  
  29.     }  
  30.   
  31.     /**   
  32.     * excel校验函数   
  33.     */  
  34.     function checkExcel(filePath) {  
  35.         var subfix = filePath.substring(filePath.lastIndexOf(".") + 1);  
  36.         if (subfix != "xls") {  
  37.             return false;  
  38.         }  
  39.         return true;  
  40.     }  
  41.     /**   
  42.     * 文件上传时的校验逻辑   
  43.     */  
  44.     function excelUpload() {  
  45.         var fileCount = 0;  
  46.         var files = document.getElementsByTagName("INPUT");  
  47.         for (var i = 0; i < files.length; i++) {  
  48.             if (files[i].type.toLowerCase != 'file'continue;  
  49.             if (files[i].errFlag) {  
  50.                 alert("导入的文件只能是xls格式,请重新选择.");  
  51.                 files[i].focus();  
  52.                 return;  
  53.             }  
  54.             if (files[i].value != "")  
  55.                 fileCount++;  
  56.         }  
  57.         if (fileCount < 1) {  
  58.             alert("请先选择要上传的数据文件!");  
  59.             return;  
  60.         }  
  61.         document.getElementById("uploadExcelForm").submit();  
  62.     }  
  63.     /**   
  64.     * 添加文件   
  65.     */  
  66.     function addFile() {  
  67.         ++__FILE_INDEX;  
  68.         var fileId = "file" + __FILE_INDEX;  
  69.         var uploadTable = document.getElementById("tableUploadFile")  
  70.         var trElement = uploadTable.insertRow(-1);  
  71.         trElement.id = "tr_" + fileId;  
  72.         var tdElement = trElement.insertCell(-1);  
  73.         tdElement.id = "td_" + fileId;  
  74.         tdElement.innerHTML = "<input type='file' name='" + fileId + "' id='" + fileId + "' size='30' style='padding-left:5px;width:300px;cursor:pointer;' >"  
  75.                + "<span id='span_" + fileId + "'></span>"  
  76.                + "<span id='del_" + fileId + "'></span>";  
  77.     }     
  78. </script>  


接下来是后台代码:

[csharp]  view plain copy
  1. //保存上传文件  
  2.         try  
  3.         {  
  4.             for (int i = 0; i < Request.Files.Count; i++)  
  5.             {  
  6.                 if (Request.Files["file" + i] != null)  
  7.                 {  
  8.                     HttpPostedFile filePost = Request.Files["file" + i];  
  9.                     string filename = filePost.FileName;  
  10.                     Random rd = new Random();  
  11.                     filename = filename.Substring(filename.LastIndexOf('\\') + 1);  
  12.                     string savePath = Server.MapPath("UpLoadFile/" + rd.Next() + filename);  
  13.                     filePost.SaveAs(savePath);  
  14.                     UpLoadFile upLoadfile = new UpLoadFile();  
  15.                     upLoadfile.FileObj = mubiao.Obj_Id;  
  16.                     upLoadfile.FileAddr = savePath;  
  17.                     upLoadfile.FileUpLoadDate = DateTime.Now;  
  18.                     new UpLoadFileBLL().InsertUpLoadFile(upLoadfile);  
  19.                 }  
  20.             }  
  21.         }  
  22.         catch (Exception)  
  23.         {  
  24.             PageMessageBoxShow("文件上传失败!");              
  25.         }  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值