`
冰糖葫芦有点酸
  • 浏览: 29866 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

Spring boot: 读取服务端指定位置文件并返回

阅读更多
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ResourceLoader;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ResourceLoader;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    
    @Autowired
    ResourceLoader loader;

    // get image
    @RequestMapping(value="/getImage", produces = MediaType.IMAGE_JPEG_VALUE)
    public @ResponseBody byte[] getImage() {
        // specify image path
        String imagePath = "/usr/local/share/image/test.jpg"; 

        return IOUtils.toByteArray(loader.getResource("file:" + imagePath).getInputStream());
    }
    
    // load static resource of project
    @RequestMapping(value="/getImage", produces = MediaType.IMAGE_JPEG_VALUE)
    public @ResponseBody byte[] getImage() {
        // 假设静态资源目录结构如附件Screenshot_1所示
        return IOUtils.toByteArray(loader.getResource("classpath:static/image/test.png").getInputStream());
    }


    // download file form server
    @GetMapping("/getFile")
    public ResponseEntity<byte[]> getFile() {
        // specify file path
        String filePath = "/usr/local/share/audio/test.mp3";

        byte[] body = IOUtils.toByteArray(loader.getResource("file:" + filePath).getInputStream());
	String fileName = filePath.substring(filePath.lastIndexOf('/')+1, filePath.length());
	HttpHeaders headers=new HttpHeaders();
	headers.add("Content-Disposition", "attachment;filename="+fileName);

	return new ResponseEntity(body, headers, HttpStatus.OK);
    }
}



  • 大小: 6 KB
分享到:
评论

相关推荐

    Spring Boot中使用Java实现文件批量下载与压缩功能

    为了解决这一问题,我们可以利用Spring Boot结合Java编写一个简单的服务端逻辑,实现将多个文件打包成一个ZIP文件供用户一次性下载。这种方案不仅可以提高用户体验,还能有效减少网络传输次数,提升效率。 #### 二...

    (源码)基于Spring Boot的在线答题系统服务端.zip

    # 基于Spring Boot的在线答题系统服务端 ## 项目简介 本项目是一个基于Spring Boot框架的在线答题系统服务端,主要用于提供前后分离的安卓答题应用的数据支持。服务端负责处理用户登录、试题管理、用户信息管理等...

    Spring Boot中使用LDAP来统一管理用户信息的示例

    其中,spring-boot-starter-data-ldap 是 Spring Boot 封装的对 LDAP 自动化配置的实现,它是基于 spring-data-ldap 来对 LDAP 服务端进行具体操作的。而 unboundid-ldapsdk 主要是为了在这里使用嵌入式的 LDAP 服务...

    卫通星GPS定位器GT06协议socket通讯JAVA Spring Boot对接

    本文将详细讨论如何使用卫通星GPS定位器GT06的通信协议,通过Socket进行数据传输,并结合Java与Spring Boot框架实现后台服务的对接。 卫通星GPS定位器GT06是一款基于GSM网络的车载定位设备,它能够实时发送位置、...

    Spring Boot技术知识点:如何制作访客码

    在IT行业中,Spring Boot是一个非常流行的Java开发框架,它极大地简化了微服务的构建过程,提供了开箱即用的功能,并且能够快速启动项目。本文将深入探讨如何利用Spring Boot技术来制作访客码,结合Java编程语言以及...

    Spring Boot项目.zip

    在本项目中,Spring Boot作为核心框架,用于搭建服务端应用,提供了依赖管理和自动配置功能,使得开发流程更加高效。 MyBatis是一个轻量级的持久层框架,它简化了Java与数据库之间的交互。MyBatis将SQL语句与Java...

    android客户端与服务端文件上传及下载

    这个接口需要解析multipart/form-data格式的数据,提取出文件内容并保存到服务器的指定位置。 2. 服务端也需要处理各种异常,例如文件过大、文件类型不合法等,返回相应的错误信息给客户端。 三、Android客户端...

    SpringBoot讲义.pdf

    - **Spring Boot 与 GraphQL**:实现 GraphQL 服务端支持。 - **Spring Boot 与 Kafka**:构建消息驱动的应用程序。 - **扩展视野**: - **微服务架构实践**:使用 Spring Cloud 构建分布式系统。 - **云原生...

    文件上传到服务端web小项目

    服务器端提供一个URL,当用户访问这个URL时,Servlet读取指定路径的文件并将其内容作为HTTP响应的主体发送回客户端。浏览器自动处理这个响应,通常会提示用户保存文件。 6. **安全考虑**:在处理文件上传时,需要...

    SpringBoot版本的多线程下载文件,分段下载文件

    2. 根据范围创建`Callable`任务,负责读取并返回指定范围的文件数据。 3. 合并所有下载的片段,并设置正确的`Content-Type`和`Content-Length`响应头。 4. 如果用户中断了下载,他们可以在下一次请求时提供上一次...

    文件上传android端和服务端

    1. **服务器环境**:服务端通常使用Java、Python、Node.js等语言搭建,需要一个Web服务器框架,如Spring Boot、Express.js或Django。 2. **路由处理**:定义接收文件上传的API路由,通常是一个POST接口,接受...

    SpringBoot +Mybatis +POI导入、导出Excel文件

    1. 用户上传Excel文件,服务端接收到文件后,通过InputStream读取文件内容。 2. 使用POI的HSSFWorkbook(.xls)或XSSFWorkbook(.xlsx)类解析Excel文件,获取到工作簿对象。 3. 遍历工作簿中的工作表,进一步处理每...

    Spring技术内幕:深入解析Spring架构与设计原理

    Spring Boot使用默认配置极大地简化了配置文件,并且支持自动配置Spring和第三方库。 1. **启动类**:通常使用`@SpringBootApplication`注解标注启动类,该注解包含了`@SpringBootConfiguration`、`@...

    Spring Boot基础学习工程myself (包含mysql主从同步,读写分离,mybatis,HTTP-RES.zip

    - **binlog日志**:主库通过binlog记录所有更改操作,从库通过I/O线程读取并应用这些日志。 - **主从切换**:在故障时可以快速将从库提升为主库,确保数据服务不间断。 3. **读写分离**: - **架构设计**:读...

    spring boot分布式秒杀系统

    在秒杀系统中,Spring Boot可以快速搭建服务,并提供自动配置、内嵌式Web服务器等功能,使我们能快速构建起服务端的基础架构。 分布式秒杀系统的核心在于其设计模式和架构。通常,我们会采用微服务架构,每个服务...

    文件上传简单三端代码,学习用

    本资源包含了一个简易的三端(浏览器、Java客户端、Spring Boot服务端)文件上传的示例代码,非常适合初学者理解和学习。下面将详细阐述其中涉及的技术点。 1. **浏览器端(Browser)**: - **HTML**:在HTML中,`...

    android文件上传到PC服务端代码

    接口需要能接收Multipart数据,并将文件保存到服务器的指定位置。 7. **进度回调**:为了提供更好的用户体验,通常需要在文件上传过程中显示进度。这可以通过监听网络库的上传进度事件,然后更新UI来实现。 8. **...

    基于springboot实现的opc 客户端

    - 创建SpringBoot项目:首先,我们需要创建一个新的SpringBoot项目,并添加必要的依赖,如Spring Web、Spring Boot DevTools等。 - 配置OPC客户端:引入OPC库后,需要配置客户端连接参数,如服务器地址、端口、...

    OneNote-Springcloud.pdf

    配置Eureka服务端通常涉及在项目中引入Eureka服务端依赖,在yaml配置文件中设置相关信息,并在Spring Boot的主类上使用@EnableEurekaServer注解以启动Eureka服务端。 6. Eureka Client注册到服务端(集群配置): ...

    网页版游戏服务端

    它可以是自研的也可以使用现成的游戏框架,如Node.js、Java Spring Boot或Python Flask。 4. **数据库服务器**:用于存储玩家信息、游戏状态、得分等数据。MySQL、MongoDB和PostgreSQL是常见的数据库选择。 5. **...

Global site tag (gtag.js) - Google Analytics