SSM框架文件远程服务器下载
1.首先你必须要建立连接
获取URL的输入流
2.之后就是文件读取和写入了
3.还有就是设置响应头,响应码等
代码
@RequestMapping("/fileDownLoad")
public HttpServletResponse fileDownLoad(@RequestParam("name") String name, HttpServletRequest request , HttpServletResponse response) throws Exception {
String fileName = name;
//连接远程服务器
// org.apache.commons.io.FileUtils.copyURLToFile(new URL("http://192.168.3.45/do-upload/component-factory/js/watch.1.3.1.js"), new File("watch.1.3.1.js"));
String realPath = "http://localhost:8081/lvresourcems/uploadfiles/" + fileName;
URL url = new URL(realPath);
HttpURLConnection urlconn = (HttpURLConnection) url.openConnection();
urlconn.connect();
BufferedInputStream bis = null;
ServletOutputStream os = null;
bis = new BufferedInputStream(urlconn.getInputStream());
os = response.getOutputStream();
//InputStream in=urlconn.getInputStream();//将该文件加入到输入流之中
byte b[] = new byte[2048];
//客户使用保存文件的对话框:
response.setHeader("Content-disposition", "inline;filename=" + fileName);
//通知客户文件的MIME类型:
response.setContentType("application/octet-stream exe;charset=gb2312"); int size;
//读取文件内容到缓存;
while ((size = bis.read(b, 0, b.length)) != -1) { //把文件内容写到本地文件中;
//bos.write(b,0,size);
os.write(b, 0, size);
}
os.close();
bis.close(); // fileName=new String(fileName.getBytes("gbk"),"iso8859-1");//防止中文乱码
// HttpHeaders headers=new HttpHeaders();//设置响应头
// headers.add("Content-Disposition", "attachment;filename="+fileName);
// HttpStatus statusCode = HttpStatus.OK;//设置响应吗
// ResponseEntity<byte[]> response=new ResponseEntity<byte[]>(body, headers, statusCode);
return response;
//public ResponseEntity(T body,
// MultiValueMap < String,String > headers,
// HttpStatus statusCode)
//HttpEntity使用给定的正文,标题和状态代码创建一个新的。
//参数:
//body - 实体机构
//headers - 实体头
//statusCode - 状态码 }
这是控制器代码,改一点就可以了
SSM框架文件远程服务器下载的更多相关文章
- ssh框架文件上传下载
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ssh and scp从远程服务器下载文件
scp -r root@172.16.252.32:/home/files /home/files 下载目录 -r root是用户172.16.252.32是ip:/home/files 是你要 ...
- SSM框架搭建web服务器实现登录功能(Spring+SpringMVC+Mybatis)
初学java EE,虽然知道使用框架会使开发更加便捷高效,但是对于初学者来说,感到使用框架比较迷惑,尤其是各种jar包的引用.各种框架的配置.注解的使用等等. 最好的学习方法就是实践,于是下载了一个现 ...
- SSH,SSM框架文件上传
一.了解文件上传 1.1 什么是文件上传 将本地文件通过流的形式写到服务器上 1.2 文件上传的技术 JspSmartUpload: 其组件是应用jsp进行B/S程序开发过 ...
- 使用scp从远程服务器下载文件到本地
[下载远程文件到本地] scp -P 6008 root@192.168.1.123:/usr/data/1.zip /Users/abc/www [上传本地文件到远程] scp -P 6008 ...
- 使用xshell从远程服务器下载文件到本地
XSHELL工具上传文件到Linux以及下载文件到本地(Windows) Xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz.首先你的L ...
- python urllib从远程服务器下载文件到本地
#!/usr/bin/env python #-*-coding:utf--*-' #Filename:download_file.py import sys,os import urllib def ...
- ssm框架文件配置
1 简介 Spring MVC (web level),采取 MVC 架构,意图取代麻烦的 Servlet 写法,简化 web 层 MyBatis (dao level),意图取代 jdbc 操作数据 ...
- C# HTTP系列11 以普通文件流方式上传文件远程服务器
系列目录 [已更新最新开发文章,点击查看详细] 应用程序中上传附件是最常使用的操作之一,ASP.NET客户端一般通过上传控件实现, <input type="file" ...
随机推荐
- idea IDE 导入的项目没有显示目录结构
解决方法:1.关闭 idea 2.删除该项目录下的 .idea 文件 3.重新 open 项目
- vue + ElementUI 关闭对话框清空验证,清除form表单
前面跟大家提到过 elementUI验证的问题,那么今天就来看看 点击对话框和关闭按钮 怎么清空验证,清空form表单,避免二次点击还会有 验证错误的提示 1.首先在你的对话框 取消按钮 加一个cli ...
- 总结day7 ---- 文件操作,读,写,追加,以及相关方法
内容大纲 一:文件的基本操作, >常见问题 >encoding >绝对路径和相对路径的 二:文件的读写追加相关操作 >读(r, r+ ,rb,r+b) >写(w,w+,w ...
- mongodb锁
锁住写操作 > db.fsyncLock(); { "info" : "now locked against writes, use db.fsyncUnlock( ...
- eclipse如何设置UTF-8
一.Eclipse设置utf-8编码包括两个方面,一方面可以设置workspace工作间编码,另一方面可以设置Android Project项目编码,设置步骤: 1)设置workspace工作间编码: ...
- UVA_11020 Efficient Solutions 【平衡二叉搜索树set用法】
一.题面 UVA11020 二.分析 最近脑子有点不好使吧,这题还想了很久. 对于给定的两个值要满足题面中的条件,那么我们可以把这两个值转化到平面中的坐标去理解. 首先,需要考虑的是维护的所有点其实是 ...
- 博客主题皮肤探索-添加新功能和fiddler的css/js替换
还有前言 使用了主题之后,发现还差了一点功能.最新评论没有了,导致读者回复需要一点时间去找到底回复了哪条博客.于是就有了添加功能的想法. 如何调试CSS/JS 打开f12,可以看见加载的js资源都是混 ...
- compact framework windows mobile wm c#代码 创建快捷方式
已经2018年了,windows mobile已经宣布不维护狠多年了,不要问我为什么还在开发windows mobile的程序,我也不想.公司有一批手持扫描枪设备依然是windows mobile的程 ...
- Java Web入门学习(二) Eclipse的配置
Java Web学习(二) Eclipse的配置 一.下载Eclipse 1.进入Eclipse官网,进行下载 上图,下载Eclipse IDE for JaveEE Developers 版本,然后 ...
- FS及CacheFS类解读
Javac中有FSInfo与CacheFSInfo两个类,CacheFSInfo继承了FSInfo类,这两个类的主要功能就是通过map缓存Jar文件,核心代码如下: private Map<Fi ...