文件输入输出流的使用,后端返回给前端文件流的形式,由前端实现文件的下载。文件的下载(网络文件,本地文件)
发布日期:2021-06-29 12:04:24
浏览次数:2
分类:技术文章
本文共 1962 字,大约阅读时间需要 6 分钟。
后端需要对文件进行操作的时候用到了FileInputStream和FileOutputStream两个类
使用多态创建输入输出流对象:InputStream docIn = new FileInputStream(new File("C:\\Users\\admin\\xxx.pdf"));//如果输出的方式是下载到本地指定目录,OutputStream out = new FileOutputStream(new File("C:\\Users\\admin\\xxx.pdf"));//如果输出方式是写入临时文件File file = File.createTempFile("ppp", ".pdf");OutputStream out = new FileOutputStream(file);//下载到本地的方式对out对象进行操作即可//如果是临时文件,out对象操作完再对file对象操作即可(上传oss等)
如果是需要返回给前端文件流的形式,然后前端来实现文件的下载使用如下方式:
这里需要注意的点是:接口无返回类型void@PostMapping("/downFile") @Transactional(rollbackFor = Exception.class) @ApiOperation(value = "下载文件", notes = "下载文件", produces = "application/json") public void downFile(@RequestBody DownloadFileRequest request) throws MalformedURLException { // 下载网络文件 int byteread = 0; URL url = new URL(request.getUrl()); try { HttpServletResponse response = HttpContextUtil.getHttpServletResponse(); //创建url连接对象 URLConnection conn = url.openConnection(); //创建输入流对象 InputStream inStream = conn.getInputStream(); //设置超时时间 conn.setConnectTimeout(3 * 1000); // 防止屏蔽程序抓取而返回403错误// conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); // 下载本地的文件放开// FileOutputStream fs = new FileOutputStream("c:/xxx.pdf"); // 设置response的Header response.addHeader("Content-Disposition", "attachment;filename=" + new String("文件名".getBytes())); response.setContentType("application/octet-stream"); byte[] buffer = new byte[1204]; int length; while ((byteread = inStream.read(buffer)) != -1) { //本地下载放开 //fs.write(buffer, 0, byteread); //写入输出流 response.getOutputStream().write(buffer, 0, byteread); } } catch (IOException e) { e.printStackTrace(); } }
转载地址:https://blog.csdn.net/zzztimes/article/details/116492445 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月14日 13时00分51秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
网页端数据库操作界面-Html页面(3)
2019-04-29
Excel 高级筛选
2019-04-29
Python爬虫 百度热搜热点
2019-04-29
Python 百度热搜 全页面爬取
2019-04-29
爬取小说——爬取书的地址
2019-04-29
爬取小说——爬取章节地址
2019-04-29
爬取小说——爬取标题和正文
2019-04-29
爬取小说——储存为TXT格式
2019-04-29
爬取小说——主体部分
2019-04-29
Python 窗口化操作
2019-04-29
excel的常用函数(二)
2019-04-29
excel的逻辑函数
2019-04-29
excel文本函数
2019-04-29
excel时间日期函数
2019-04-29
excel查找引用函数
2019-04-29
棱镜门事件
2019-04-29
拼多多远程删除用户照片事件
2019-04-29
power BI desktop
2019-04-29
中国信息化发展八大趋势(一)
2019-04-29
中国信息化发展八大趋势(二)
2019-04-29