Vue前端代码

function downloadFile(fileId, fileName) {window.open("/downloadFile?fileId=?&fileName=" + encodeURI(fileName));
}

后台代码

import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;@RequestMapping("/downloadFile")
private void downLoadFile(HttpServletRequest request, HttpServletResponse response, String fileId) {response.setCharacterEncoding("UTF-8");response.setContentType("application/x-msdownload");try {MyFile myFile = service.queryFileInfoById(fileId);String fileName = URLEncoder.encode(myFile.getFileName(),"UTF-8");//转Unicode不然ie会乱码response.setHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes(StandardCharsets.UTF_8), "ISO8859-1"));//获取文件路径String fileUrl = myFile.getFileUrl();//获取项目在服务器上的真实路径//String realPath = request.getSession().getServletContext().getRealPath("/");//如果数据库中存的路径是文件在项目下的那个目录的话,就需要和上面的路径进行拼接(‘File.separator’是区分服务器的路径分隔符)//fileUrl = realPath + File.separator + fileUrl + File.separator + fileName;//如果数据库中存的路径是文件在服务器上的真实路径的话,可以直接使用File file = new File(fileUrl);if (!file.exists()) {response.sendError(404, "File not found!");return;}long fileLength = file.length();response.setHeader("Content-Length", String.valueOf(fileLength));BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());byte[] buff = new byte[2048];int bytesRead;while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {bos.write(buff, 0, bytesRead);}bis.close();bos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
}

JAVA实现从Linux服务器上下载文件相关推荐

  1. python连接linux服务器读取txt文件_python 读取Linux服务器上的文件方法

    使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址).端口号.用户名及密码 hos ...

  2. 如何用 VS Code remote 插件编辑远程 linux 服务器上的文件

    VS Code 是目前最优秀的文本编辑器之一,使用它可以方便地编辑我们 Windows 或者 Mac 机器上的文件.要编辑我们在云上的 linux 服务器的文件,通常我们要么使用 VI,nano 这样 ...

  3. 如何在linux服务器下载文件夹,linux服务器怎么下载文件到本地

    linux服务器怎么下载文件到本地 发布时间:2020-06-16 12:08:20 来源:亿速云 阅读:318 作者:鸽子 1.使用scp命令scp /home/work/source.txt wo ...

  4. xshell往linux传文件,Xshell向Linux服务器上传文件的详细步骤

    相信Linux用户对Xshell远程管理软件都不陌生的,不过对于一些新手朋友来讲,向Linux服务器上传文件可能还存在难度,这里小编就分享了Xshell向Linux服务器上传文件的详细步骤,下面一起来 ...

  5. mac电脑如何从远程连接的服务器上下载文件

    背景: 疫情期间,在家里写毕业论文,挂着学校的vpn连学校的服务器. 由于最近个人电脑换成mac了,需要从远程服务器上下载文件到自己电脑上. 没用samba,因为我不是服务器管理员,所以一时没办法在服 ...

  6. 服务器如何下载百度网盘文件?Linux服务器如何在百度网盘中连接、上传下载;在Linux服务器上下载百度云盘中的资料

    前言 百度云提供Python包bypy进行远程服务器的对接然后下载: https://github.com/houtianze/bypy 可以通过pip直接下载,授权本人的百度云账号后,就可以直接使L ...

  7. 使用rsync同步linux服务器上的文件到windows上

    需求: 在windows客户端上执行计划任务同步脚本,从linux服务器上同步对应模块下的目录内容到windows客户端的D:\data目录下. 步骤: 1. rsync服务端操作略: (百度一下都有 ...

  8. 王权富贵:window7往Linux服务器上传文件

    参考文件: 感谢电信班的欧海杰同学 window7往Linux服务器上传小型文件(速度400kb/s) 在Linux服务器上装一下 sudo apt-get install lrzsz  命令 rz ...

  9. c上传文件到linux服务器,上传文件到Linux服务器

    1. Window上传文件到Linux 1.1 图形化界面winscp 适用于传送文件和目录,但要安装额外的软件winscp 1.2 lrzsz套件 适用于传送文件,使用ssh远程登录管理软件xshe ...

  10. 编辑服务器上的文件,Sublime Text编辑远程Linux服务器上的文件

    sublime有个叫sftp的插件,可以通过它直接打开远程机器上的文件进行编辑,并在保存后直接同步到远程linux服务器上. 用Package Control安装插件 按下Ctrl+Shift+P调出 ...

最新文章

  1. 福利一波,赠票:2018杭州云栖大会 - 单日票(9月22日)
  2. nginx linux脚本,shell脚本之nginx自动化脚本
  3. C 库函数 int fprintf(FILE *stream, const char *format, ...) 发送格式化输出到流 stream 中
  4. Caffe官方教程翻译(6):Learning LeNet
  5. JAVA_OA管理系统(二)番外篇:IoC原理
  6. JavaScript字符串操作方法大全,包含ES6方法 1
  7. [机器学习]AutoML --- AutoKeras
  8. 使用Ingress来负载分发微服务
  9. LeetCode 1406. 石子游戏 III(DP)
  10. C语言实现数字串转数字
  11. 信息收集--空间搜索引擎/网盘
  12. Apache --Tomcat 8下载与配置(Tomcat压缩包下载 Windows 7 x64)
  13. tcpdf html 支持css吗,TCPDF - 内部css无效
  14. 游戏程序常规设计模式
  15. 【回顾】巨杉数据库中标东莞农商银行非结构化内容管理平台项目
  16. 利用$randon和seed可以在测试脚本里面产生测试所需的赋值
  17. vue实战(11):开发店铺详情(二)
  18. 考研英语 - word-list-31
  19. 【动漫风格迁移】基于AnimeGAN的安卓APP工具
  20. 图数据库入门教程-深入学习Gremlin(1):图基本概念与操作

热门文章

  1. 教你流程化梳理外贸工作(附18个全流程邮件模板分享)
  2. SketchUp教程:BIG事务所的建筑竞赛分析图表现(附笔刷+处理稿)
  3. Java几种常量池区分(字符串常量池、class常量池和运行时常量池)
  4. 2.5音频编辑软件2.6语音识别技术
  5. 【毕设】requests+bs4+re 爬取知网文献来源的信息
  6. 计算机学部毕业设计答疑记录,毕业论文指导记录怎么写?毕业论文指导记录12篇...
  7. java 打印机_JAVA实现调用打印机打印PDF
  8. 分享一款超强看图软件。极速看图。这些看图软件比系统自带的强大多了!
  9. 基于微信小程序的毕业设计题目(32)求职招聘小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  10. 实时监控input输入框,获取输入的内容,去除拼音