JAVA实现从Linux服务器上下载文件
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服务器上下载文件相关推荐
- python连接linux服务器读取txt文件_python 读取Linux服务器上的文件方法
使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址).端口号.用户名及密码 hos ...
- 如何用 VS Code remote 插件编辑远程 linux 服务器上的文件
VS Code 是目前最优秀的文本编辑器之一,使用它可以方便地编辑我们 Windows 或者 Mac 机器上的文件.要编辑我们在云上的 linux 服务器的文件,通常我们要么使用 VI,nano 这样 ...
- 如何在linux服务器下载文件夹,linux服务器怎么下载文件到本地
linux服务器怎么下载文件到本地 发布时间:2020-06-16 12:08:20 来源:亿速云 阅读:318 作者:鸽子 1.使用scp命令scp /home/work/source.txt wo ...
- xshell往linux传文件,Xshell向Linux服务器上传文件的详细步骤
相信Linux用户对Xshell远程管理软件都不陌生的,不过对于一些新手朋友来讲,向Linux服务器上传文件可能还存在难度,这里小编就分享了Xshell向Linux服务器上传文件的详细步骤,下面一起来 ...
- mac电脑如何从远程连接的服务器上下载文件
背景: 疫情期间,在家里写毕业论文,挂着学校的vpn连学校的服务器. 由于最近个人电脑换成mac了,需要从远程服务器上下载文件到自己电脑上. 没用samba,因为我不是服务器管理员,所以一时没办法在服 ...
- 服务器如何下载百度网盘文件?Linux服务器如何在百度网盘中连接、上传下载;在Linux服务器上下载百度云盘中的资料
前言 百度云提供Python包bypy进行远程服务器的对接然后下载: https://github.com/houtianze/bypy 可以通过pip直接下载,授权本人的百度云账号后,就可以直接使L ...
- 使用rsync同步linux服务器上的文件到windows上
需求: 在windows客户端上执行计划任务同步脚本,从linux服务器上同步对应模块下的目录内容到windows客户端的D:\data目录下. 步骤: 1. rsync服务端操作略: (百度一下都有 ...
- 王权富贵:window7往Linux服务器上传文件
参考文件: 感谢电信班的欧海杰同学 window7往Linux服务器上传小型文件(速度400kb/s) 在Linux服务器上装一下 sudo apt-get install lrzsz 命令 rz ...
- c上传文件到linux服务器,上传文件到Linux服务器
1. Window上传文件到Linux 1.1 图形化界面winscp 适用于传送文件和目录,但要安装额外的软件winscp 1.2 lrzsz套件 适用于传送文件,使用ssh远程登录管理软件xshe ...
- 编辑服务器上的文件,Sublime Text编辑远程Linux服务器上的文件
sublime有个叫sftp的插件,可以通过它直接打开远程机器上的文件进行编辑,并在保存后直接同步到远程linux服务器上. 用Package Control安装插件 按下Ctrl+Shift+P调出 ...
最新文章
- 福利一波,赠票:2018杭州云栖大会 - 单日票(9月22日)
- nginx linux脚本,shell脚本之nginx自动化脚本
- C 库函数 int fprintf(FILE *stream, const char *format, ...) 发送格式化输出到流 stream 中
- Caffe官方教程翻译(6):Learning LeNet
- JAVA_OA管理系统(二)番外篇:IoC原理
- JavaScript字符串操作方法大全,包含ES6方法 1
- [机器学习]AutoML --- AutoKeras
- 使用Ingress来负载分发微服务
- LeetCode 1406. 石子游戏 III(DP)
- C语言实现数字串转数字
- 信息收集--空间搜索引擎/网盘
- Apache --Tomcat 8下载与配置(Tomcat压缩包下载 Windows 7 x64)
- tcpdf html 支持css吗,TCPDF - 内部css无效
- 游戏程序常规设计模式
- 【回顾】巨杉数据库中标东莞农商银行非结构化内容管理平台项目
- 利用$randon和seed可以在测试脚本里面产生测试所需的赋值
- vue实战(11):开发店铺详情(二)
- 考研英语 - word-list-31
- 【动漫风格迁移】基于AnimeGAN的安卓APP工具
- 图数据库入门教程-深入学习Gremlin(1):图基本概念与操作
热门文章
- 教你流程化梳理外贸工作(附18个全流程邮件模板分享)
- SketchUp教程:BIG事务所的建筑竞赛分析图表现(附笔刷+处理稿)
- Java几种常量池区分(字符串常量池、class常量池和运行时常量池)
- 2.5音频编辑软件2.6语音识别技术
- 【毕设】requests+bs4+re 爬取知网文献来源的信息
- 计算机学部毕业设计答疑记录,毕业论文指导记录怎么写?毕业论文指导记录12篇...
- java 打印机_JAVA实现调用打印机打印PDF
- 分享一款超强看图软件。极速看图。这些看图软件比系统自带的强大多了!
- 基于微信小程序的毕业设计题目(32)求职招聘小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
- 实时监控input输入框,获取输入的内容,去除拼音