@Controller
public class DownLoadController {
protected Log log = LogFactory.getLog(DownLoadController.class);
@Autowired
ResourceService resourceService;
@Value("${image.directory}")
String imageServerDirectory;
@RequestMapping(value = "/download/{resourceId}")
public ResponseEntity<byte[]> download(@PathVariable Long resourceId) throws IOException {
Resource resource = resourceService.selectByPrimaryKey(resourceId);
String downloadUrl = resource.getDownloadUrl();
File sourceImageFile = new File(imageServerDirectory + downloadUrl);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//解决中文文件名下载没有名称问题
headers.setContentDispositionFormData("attachment", new String(sourceImageFile.getName().getBytes("UTF-8"), "ISO8859-1"));
return new ResponseEntity<byte[]>(FileUtil.readAsByteArray(sourceImageFile), headers,
HttpStatus.CREATED);
}
}
分享到:
相关推荐
本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...
- **HttpServletResponse**:在Controller方法中,我们可以通过HttpServletResponse对象来构造HTTP响应,设置合适的响应头如Content-Type、Content-Disposition,以便浏览器能够正确处理文件下载。 - **流式传输**...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
8. **异步处理**:Spring MVC 4.0引入了异步请求处理,通过@ControllerAdvice和@Async注解,可以实现后台任务的异步执行,提高响应速度。 9. **多Part文件上传**:支持多文件上传,利用MultipartFile接口处理上传...
14. **Asynchronous Request Processing**: Spring MVC支持异步请求处理,可以通过`@Async`注解实现后台任务的并发执行。 15. **Internationalization (i18n) and Localization (l10n)**: Spring MVC提供对国际化和...
- **概述**:Spring MVC 支持处理多部分请求,特别是文件上传。 - **使用 MultipartResolver 与 CommonsFileUpload 传输文件**:这些组件帮助处理文件上传请求。 - **Servlet 3.0 下的 MultipartResolver**:对于 ...
在本压缩包中包含了一系列与Spring MVC相关的jar文件,这些文件是构建和运行Spring MVC项目所必需的依赖。 首先,`hibernate3.jar` 是Hibernate ORM框架的库,它允许开发者将Java对象映射到关系数据库,提供了数据...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(Model-View-Controller)架构的应用程序提供了强有力的支持。这个简易的Spring MVC demo包含了一系列关键知识点,对于初学者来说是很好的...
在 Spring MVC 中, jsp 文件中尽量不要有 Java 代码, 只有 HTML 代码和"迭代(forEach)"与"判断(if)"两个jstl标签. jsp 文件只作为渲染(或称为视图 View)模板使用. 好了, 我们开始吧. 首先我们需要一个放在 WEB-INF...
六、Spring MVC mvc.xml配置文件片段讲解:Spring MVC通过配置文件来定义处理器映射、视图解析器、静态资源处理等。配置文件对于整个框架的运行至关重要。 七、Spring MVC如何访问到静态的文件:描述了如何配置...
2. **Spring MVC 模块**:`spring-webmvc.jar` 是 Spring MVC 的核心组件,它实现了 MVC 设计模式,提供请求处理、视图解析等功能。这个 jar 包是构建基于 Spring 的 Web 应用必不可少的。 3. **Spring Web 模块**...
通过下载提供的Spring MVC依赖包,你可以快速开始构建自己的Spring MVC项目,享受到Spring框架带来的强大功能和灵活性。记得正确配置项目结构,以及在pom.xml或build.gradle文件中引入所需的依赖,确保项目的顺利...
9. **拦截器(Interceptor)**: Spring MVC允许自定义拦截器,可以在请求处理前或后执行一些通用逻辑,如权限检查、日志记录等。 10. **异常处理**: 可以全局或局部地配置异常处理器,将异常转换为特定的视图或HTTP...
文件下载的实现相对简单,我们创建一个Controller方法,返回一个`ResponseEntity`对象,包含文件的二进制内容和相应的HTTP头信息。例如: ```java @GetMapping("/download") public ResponseEntity...
这个场景通常涉及到前端的JavaScript或jQuery库(如jQuery File Upload)与后端的Spring MVC控制器之间的交互,以及可能的多线程处理来跟踪文件上传的进度。接下来,我们将深入探讨如何在Spring MVC中实现这一功能。...
Spring MVC提供了方便的文件上传和下载功能,开发者可以通过简单的API来实现复杂的文件操作。 **6. 异常处理** 通过自定义异常处理器,Spring MVC允许优雅地处理运行时异常,提供了统一的错误页面和异常信息。 **7...
- 在Spring MVC配置文件中声明处理器映射器、视图解析器、以及自定义的控制器等。 4. **创建简单示例** 在这个"Spring MVC 简单Demo"中,我们可能有一个名为`SummerWeb`的目录,其中包含以下文件: - `web.xml`...
为了使 Spring MVC 能够处理这个请求,我们需要在 `web.xml` 文件中配置一个 Servlet。 ```xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
这通常包括安装Java Development Kit (JDK)、配置IDE(如IntelliJ IDEA或Eclipse)、添加Spring MVC的相关依赖到构建工具(如Maven或Gradle)的pom.xml或build.gradle文件中。还需要配置Web应用服务器,比如Tomcat,...