文件上传用的是FormData传递文件以及MutilpartFile后台接收
FormData上传文件的2种方式:
1.直接表单提交:
<form action="fileUpload.html" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="file">
<input type="submit" value="提交">
</form>
2.Ajax提交:
<form id="uploadForm" enctype="multipart/form-data">
选择文件:<input type="file" name="file">
<input type="button" id="upload" value="提交">
</form>
Spring对上传文件的支持:
<!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<!--上传文件的大小-->
<property name="maxUploadSize" value="1024000000"/>
<!--上传文件的大小超过时 放在temp临时文件中-->
<property name="maxInMemorySize" value="1024000"/><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<!--上传文件的大小-->
<property name="maxUploadSize" value="1024000000"/>
<!--上传文件的大小超过时 放在temp临时文件中-->
<property name="maxInMemorySize" value="1024000"/>
</bean>
注意:在多线程环境中上传文件出现的问题,文件超出maxInMemorySize时,上传文件放在临时文件中,如果此时线程资源被其他线程拿到,jvm可能将temp文件删除,之后再读取上传文件时会报错。需要将读取文件流的操作new FileInputStream(file)放到多线程外面。
免责声明:文章源自网络,版权归原作者所有,如有侵犯联系删除。