<!-- 文件上传所依赖的jar包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
在springMVC-servlet.xml配置文件中配置文件解析器:
<!--1*1024*1024即1M resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常 -->
<!--文件上传解析器-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1048576"/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="resolveLazily" value="true"/>
</bean>
注意解析器的id必须等于multipartResolver,否则上传会出现异常
import org.apache.commons.io.FileUtils
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.multipart.MultipartFile
import org.springframework.web.multipart.commons.CommonsMultipartFile
import java.io.File
@Controller
public class FileController {
/**
* 上传单个文件 *** 作
* MultipartFile file就是上传的文件
* @return
*/
@RequestMapping(value = "/upload1.html")
public String fileUpload1(@RequestParam("file") MultipartFile file) {
try {
//将上传的文件存在E:/upload/下
FileUtils.copyInputStreamToFile(file.getInputStream(), new File("E:/upload/",
file.getOriginalFilename()))
} catch (Exception e) {
e.printStackTrace()
}
//上传成功返回原来页面
return "/file.jsp"
}}
上传文件时,Controller的方法中参数类型是MultipartFile即可将文件映射到参数上。
页面:
file.jsp:
<form method="post" action="/upload1.html" enctype="multipart/form-data">
<input type="file" name="file"/>
<button type="submit" >提交</button>
</form>
*/@ApiModel("大文件分片入参实体")public class MultipartFileParam {@ApiModelProperty("文件传输任务ID")private String taskId
@ApiModelProperty("当前为第几分片")private int chunk
@ApiModelProperty("每个分块的大小")private long size
@ApiModelProperty("分片总数")private int chunkTotal
@ApiModelProperty("主体类型--这个字段是我项目中的其他业务逻辑可以忽略")private int objectType
@ApiModelProperty("分块文件传输对象")private MultipartFile file
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)