`

springMVC REST 上传文件

阅读更多

参考:

1.http://www.journaldev.com/2573/spring-mvc-file-upload-example-single-multiple-files

 

上传接口controll:

@RestController
public class OcrController {
	
	private static final Logger logger = LoggerFactory.getLogger(OcrController.class);
	
	@Resource
	private OcrService ocrService;
	
	@RequestMapping(value="/api/ocr",method = RequestMethod.POST)
	public Response getOcrResponse(@RequestParam(value = "file", required = false) MultipartFile file ) {
		logger.info("get OCR services start...");
		
		OcrFailResponse ocrFailResponse = null;
		Response ocrResponse = null;
		
		File serverFile = createFileOnServer(file);
		
		if(serverFile.exists()){
			
			ocrResponse = ocrService.getOcrService(serverFile);
			return ocrResponse;
		}else{
			ocrFailResponse = new OcrFailResponse();
			ocrFailResponse.setCode(Response.RESULT_CODE_ERROR);
			ocrFailResponse.setMessage(OcrFailResponse.RESULT_MESSAGE_FILEUPLOAD_ERROR);
			return ocrFailResponse;
		}
		
	}
	
	
	public File createFileOnServer(MultipartFile file){
		
		File serverFile = null;
		
		if (!file.isEmpty()) {
			try {
				byte[] bytes = file.getBytes();

				// Creating the directory to store file
				String filename = "OcrUplaod_" + TimeUtil.genDate() + ".png";
				File dir = new File(SystemConfig.getFile_store_path());
				if (!dir.exists())
					dir.mkdirs();

				// Create the file on server
				serverFile = new File(dir.getAbsolutePath()
						+ File.separator + filename);
				BufferedOutputStream stream = new BufferedOutputStream(
						new FileOutputStream(serverFile));
				stream.write(bytes);
				stream.close();

				logger.info("Server File Location="
						+ serverFile.getAbsolutePath());
				
				

			} catch (Exception e) {
				logger.error("You failed to upload " + file + " => " + e.getMessage());
			}
		} else {
			logger.debug("You failed to upload " + file + " because the file was empty.");
		}
		
		return serverFile;
	}

}

 

注意要导入commons-fileupload.jar,要不会报错:

the current request is not a multipart request

 

compile 'commons-fileupload:commons-fileupload:1.3.2'

 

添加bean:

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

 

这里可以配置文件上传大小限制:

<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="defaultEncoding" value="UTF-8"/>
        <property name="maxUploadSize" value="#{20*1024*1024}"/>
        <property name="resolveLazily" value="true"/>
	</bean>

 

分享到:
评论

相关推荐

    SpringMVC PPT_springmvc_

    SpringMVC 提供了对文件上传和下载的支持,可以方便地处理用户的文件操作请求。 十一、RESTful API 设计 SpringMVC 也支持 RESTful 风格的 Web 服务,可以通过 @RequestMapping 注解配合 HTTP 方法(GET、POST、PUT...

    Java源码 SpringMVC Mybatis Shiro Bootstrap Rest Webservice

    集成REST服务,可以用作独立服务平台(提供大量实例及测试平台,包括:文件上传下载、邮件短信发送、部门、产品、公共连接、我的收藏、我的任务、信息发布等) 5. 集成Quartz调度,可以用作定时调度平台(动态...

    springMVC教案.rar

    SpringMVC提供了便捷的文件上传和下载功能,通过MultipartFile接口处理文件上传,通过HttpServletResponse实现文件下载。 11. **RESTful API**: SpringMVC可以轻松构建RESTful服务,通过HTTP方法(GET、POST、...

    springmvc教程

    要实现文件上传,你需要在控制器方法中使用@RequestBody或@RequestParam注解来接收MultipartFile对象,这个对象包含了上传文件的信息。同时,你需要配置Spring MVC的MultipartResolver,例如使用...

    看透springMvc源代码分析与实践.pdf

    10. **上传下载**:SpringMVC提供了处理文件上传和下载的功能,包括多文件上传和大文件断点续传。 11. **异步处理**:通过@ControllerAdvice和@Async注解,可以实现异步方法处理,提高系统响应速度。 12. **...

    springMVC jar 包

    11. **上传下载支持**:SpringMVC提供了处理文件上传和下载的功能,可以通过MultipartFile接口来处理上传文件。 12. **国际化和本地化**:SpringMVC支持根据用户的选择或浏览器设置,提供不同语言和区域的资源。 ...

    跟着开涛学SpringMVC

    - **文件上传和下载**:方便处理文件的上传和下载操作。 - **集成其他Spring项目**:可以和Spring Framework中的其他组件,如Spring Security、Spring Data等无缝集成。 通过学习SpringMVC,开发者能够更加高效地...

    springmvc课堂笔记(两天)

    3. **上传下载文件**:如何处理HTTP请求中的文件上传和下载,包括使用MultipartFile接口。 4. **拦截器(Interceptor)**:学习如何编写和注册自定义拦截器,实现请求预处理和后处理功能,如日志记录、权限检查等。...

    springmvc全面的学习资料

    在提供的 "springMVC.rar" 和 "springmvc3.0资料.zip" 文件中,您可以找到详细的教程文档、代码示例、练习项目等资源,帮助您逐步深入理解和掌握 Spring MVC。通过这些学习资料,您将能够独立地开发和维护基于 ...

    springmvc学习笔记-前端控制器、上传、异常、开发心得小结等.zip

    SpringMVC提供了便捷的文件上传功能,主要依赖于`MultipartFile`接口。开发者可以通过在控制器方法的参数中声明`MultipartFile`来接收上传的文件。同时,需要在配置文件中启用MultipartResolver,如...

    SpringMVC4教程-超权威--超详细

    - **文件上传**:SpringMVC通过MultipartResolver接口支持文件上传功能,常见的实现有CommonsMultipartResolver。 #### 十三、使用拦截器 - **拦截器**:拦截器可以用来实现日志记录、权限检查等功能,增强了应用...

    springMVC.pdf

    文件上传是SpringMVC框架支持的一个扩展功能,允许用户上传文件到服务器。 Spring标签提供了对SpringMVC框架的视图表单支持,简化了在JSP等视图技术中的使用。 国际化支持允许Web应用根据用户的区域设置展示不同的...

    springmvc包

    16. **上传文件支持**:使用 MultipartFile 类型,Spring MVC 可以处理文件上传请求。 17. **模板引擎支持**:除了 JSP,Spring MVC 还支持 Thymeleaf、FreeMarker 等模板引擎,提供更灵活的视图渲染方式。 18. **...

    SpringMVC部分【第2天相关资料及源代码】.

    SpringMVC提供API处理文件上传和下载,如`MultipartFile`接口处理上传的文件。 **7. 模板引擎集成** SpringMVC可以与多种视图技术如JSP、Thymeleaf、FreeMarker等进行集成,实现动态视图渲染。 **8. RESTful API...

    webuploader分片上传

    既可以上传图片也可以上传文件。文件超过分片大小才启用分片。 3、分片上传已做md5校验,达到秒传的效果。分片以后需要合并,可以先分片后合并,也可以边分片边合并,本示例采用的是边分片边合并的方案。 4、后端...

    SpringMVC入门教程

    - SpringMVC提供了便捷的文件上传功能,可以使用`MultipartFile`接口处理上传的文件。 - 文件下载则通过响应流实现,设置Content-Disposition头指示浏览器如何处理文件。 8. **异常处理** - 可以通过`@...

    SpringMVC+Hibernate学习资料

    5. 文件上传与下载:展示了SpringMVC如何支持文件的上传和下载功能。 6. AOP(面向切面编程):SpringMVC可以结合Spring的AOP模块实现日志记录、权限控制等功能。 7. RESTful API设计:介绍如何使用SpringMVC创建...

Global site tag (gtag.js) - Google Analytics