JAVA的文件上传,比较经常使用的,仍是记录一下。html
1、环境前端
J2EE,Mabitis与Spring框架,所需jar包:java
commons-io-1.2.jarweb
commons-fileupload-1.1.1.jarspring
2、代码
后端
前端代码安全
前端form中必须加上这一段enctype="multipart/form-data"服务器
提交方式必须是"post"框架
<form action="/upload.frm?method=upload" method="post" name="myform" id="myform" enctype="multipart/form-data"> <input type="file" name="file_upload"> <input type="submit" id="savebutton" value="提交" class="button_save"> </form>
配置文件ide
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- set fileUpload max size is 100MB --> <property name="maxUploadSize"> <value>104857600</value> </property> </bean>
后端代码
上传路径最好放在WEB-INF下确保安全
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; // 获得上传的文件,file_upload对应前端代码中file组件的name MultipartFile mFile = multipartRequest.getFile("file_upload"); // 获得上传服务器的路径 String path = request.getSession().getServletContext() .getRealPath("/WEB-INF/upload/"); // 获得上传的文件的文件名 String filename = mFile.getOriginalFilename(); InputStream inputStream = mFile.getInputStream(); byte[] b = new byte[1048576]; int length = inputStream.read(b); path += "\\" + filename; // 文件流写到服务器端 FileOutputStream outputStream = new FileOutputStream(path); outputStream.write(b, 0, length); inputStream.close(); outputStream.close();