本节探讨总结了上传文件时对文件大小的限制的方法:(1)使用JS; (2)在后台限制(3)使用Spring框架时的处理办法
首先显示页面的代码段:
<form name="fileForm" action="xxxx" method="post" οnsubmit="return doCheck()" > <input type="file" name="filePush" id="filePush" /> </form> (1)使用JS,代码如下
function doCheck() { var filestr = document.getElementById("filePush").value; alert(filestr); var fso,f; fso=new ActiveXObject("Scripting.FileSystemObject"); f=fso.GetFile(filestr); if(f.Size >= 1024*1024){ alert("该.xeb文件大于1M,请重新选择!"); return false; } if(window.confirm("确定要上传这份文件吗?")){ return true; } return false; }
(2)后台处理
String alertStr = ""; String srcPath = request.getParameter("filePush"); try{ File srcFile = new File(srcPath); long srcFileSize = srcFile.length(); System.out.println("上传文件大小为:"+ srcFileSize/1024 + "K!"); long fileSize = 1024*1024; if(srcFileSize>fileSize){ alertStr="安装包上传失败!文件过大,最大可上传1M的文件。"; } if(srcFileSize==0){ alertStr="上传文件为0字节,请重新选择!"; } } catch(Exception e) { e.printStackTrace(); }
//这种方法是错误的,只能在本机测试通过。因为红色部分无法获得客户端所输入的路径参数。
//常见的上传方法是使用smartupload组件(第三方开源)或者其他组件。
(3)使用Spring框架时的处理
String alertStr = ""; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; CommonsMultipartFile orginalFile = (CommonsMultipartFile) multipartRequest.getFile("FILEPUSH"); //FILEPUSH是id=filePush的表单对应的Form类属性 long fileSize = 1024×1024; if(orginalFile.getSize()>fileSize){ alertStr = "安装包上传失败!文件过大,最大可上传1MB的文件。"); }