Springmvc 上传文件MultipartFile 转File 笔记

业务场景:ssm框架 上传文件到应用服务器过程中要传到专有的文件服务器并返回url进行其他操作。

业务难点:MultipartFile转File类型

解决代码:

/**
     * MultipartFile 转换成File
     * 
     * @param multfile 原文件类型
     * @return File
     * @throws IOException
     */
    private File multipartToFile(MultipartFile multfile) throws IOException {
    	CommonsMultipartFile cf = (CommonsMultipartFile)multfile; 
		//这个myfile是MultipartFile的
		DiskFileItem fi = (DiskFileItem) cf.getFileItem();
		File file = fi.getStoreLocation();
		//手动创建临时文件
		if(file.length() < CommonConstants.MIN_FILE_SIZE){
			File tmpFile = new File(System.getProperty("java.io.tmpdir") + System.getProperty("file.separator") + 
					file.getName());
			multfile.transferTo(tmpFile);
	        return tmpFile;
		}
        return file;
    }
注意事项:上传文件大小若小于2048,则不会生成临时文件

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="defaultEncoding" value="UTF-8" />
		<property name="maxUploadSize" value="10240000" />
		<!-- 设置在文件上传时允许写到内存中的最大值,以字节为单位计算,默认是10240 -->
        <!-- 但是经实验,上传文件大小若小于此参数,则不会生成临时文件,故改为2048 -->
        <property name="maxInMemorySize" value="2048" />  
	</bean>
Solver : fage

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值