JAVA的文件上传,比较常用的,还是记录一下。

    一、环境

    J2EE,Mabitis与Spring框架,所需jar包:

    commons-io-1.2.jar

    commons-fileupload-1.1.1.jar


    二、代码

前端代码

前端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>


配置文件

<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();