springMVC 文件上传

本文详细介绍了如何在Spring MVC中配置文件上传功能,并通过实际代码演示了上传文件的测试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pom引用

<dependency>

<groupId>commons-fileupload</groupId>

<artifactId>commons-fileupload</artifactId>

<version>1.3.1</version>

</dependency>

 

springmvc-servlet.xml 中加上以下配置

<!-- 支持上传文件 -->  

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<!-- set the max upload size 2MB -->

<property name="maxUploadSize">

<value>1024000000</value>

</property>

<property name="defaultEncoding">

<value>utf-8</value>

</property>

<property name="maxInMemorySize">

<value>10240</value>

</property>

</bean>

 

 

<form action="upload.do" method="post" enctype="multipart/form-data">

<input type="hidden" name="method" value="upload"/>

<input type="file" name="file"/>

<input type="submit" value="upload"/>

</form>

 

/**

* 上传文件测试

* @param request

* @param model

* @return

*/

@RequestMapping(method=RequestMethod.POST, params = "method=upload")

public String upload(HttpServletRequest request,ModelMap model) {

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd/HH");

/**构建图片保存的目录**/

String logoPathDir = "/files"+ dateformat.format(new Date());

/**得到图片保存目录的真实路径**/

String logoRealPathDir = request.getSession().getServletContext().getRealPath(logoPathDir);

/**根据真实路径创建目录**/

File logoSaveFile = new File(logoRealPathDir);

if(!logoSaveFile.exists())

logoSaveFile.mkdirs();

/**页面控件的文件流**/

MultipartFile multipartFile = multipartRequest.getFile("file");

/**获取文件的后缀**/

String suffix = multipartFile.getOriginalFilename().substring

(multipartFile.getOriginalFilename().lastIndexOf("."));

/**使用UUID生成文件名称**/

String logImageName = UUID.randomUUID().toString()+ suffix;

//构建文件名称

String logImageName = multipartFile.getOriginalFilename();

/**拼成完整的文件保存路径加文件**/

String fileName = logoRealPathDir + File.separator + logImageName;

File file = new File(fileName);

try {

multipartFile.transferTo(file);

} catch (IllegalStateException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

model.put("fileName", fileName);

return "/test/success";

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值