java将文件转成流文件返回给前端
爱北的琳儿 2024-06-18 09:03:03 阅读 69
环境:jdk1.8,springboot2.5.3,项目端口号:9100
1.待转换的文件
一、路径
二、文件内容
2.controller中代码
package com.example.pdf.controller;import com.example.pdf.service.GetFileStreamService;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;import javax.servlet.http.HttpServletResponse;/** * @author * @date 2024/3/29 16:28 * @describe */@RestController@RequestMapping(value = "test")public class GetFileStreamController { @Resource private GetFileStreamService getFileStreamService;/** * 获取文件流 */ @GetMapping("getFileStream") public void getFileStream(HttpServletResponse response) { getFileStreamService.getFileStream(response); }}
3.service中代码
package com.example.pdf.service;import javax.servlet.http.HttpServletResponse;/** * @author * @date 2024/3/29 16:30 * @describe */public interface GetFileStreamService { /** * 获取文件流 * @param response */ void getFileStream(HttpServletResponse response);}
4.实现类代码
package com.example.pdf.service.impl;import com.example.pdf.service.GetFileStreamService;import org.springframework.stereotype.Service;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.FileInputStream;import java.io.OutputStream;/** * @author * @date 2024/3/29 16:31 * @describe */@Servicepublic class GetFileStreamServiceImpl implements GetFileStreamService { /** * 获取文件流 */ @Override public void getFileStream(HttpServletResponse response) { // 指定文件路径,获取file文件 File file = new File("E:\\Desktop\\temps\\test.pdf"); try { // 将文件转为文件输入流 FileInputStream fileInputStream = new FileInputStream(file); // 获取响应的输出流 OutputStream outputStream = response.getOutputStream(); // 将文件转成字节数组,再将数组写入响应的输出流 byte[] buffer = new byte[1024]; int bytesRead = -1; while ((bytesRead = fileInputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } // 刷新输出流 outputStream.flush(); // 关闭流 fileInputStream.close(); outputStream.close(); } catch (Exception e) { e.printStackTrace(); } }}
5.postman中访问结果示例
6.浏览器中访问结果示例
上一篇: webpack自动化打包webpack-dev-server
下一篇: web期末作业设计网页:动漫网站设计——哆啦A梦(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 动漫网页设计作业 web网页设计与开发 html实训大作业
本文标签
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。