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框架文件远程服务器下载的更多相关文章

  1. ssh框架文件上传下载

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. ssh and scp从远程服务器下载文件

    scp -r root@172.16.252.32:/home/files /home/files   下载目录  -r root是用户172.16.252.32是ip:/home/files 是你要 ...

  3. SSM框架搭建web服务器实现登录功能(Spring+SpringMVC+Mybatis)

    初学java EE,虽然知道使用框架会使开发更加便捷高效,但是对于初学者来说,感到使用框架比较迷惑,尤其是各种jar包的引用.各种框架的配置.注解的使用等等. 最好的学习方法就是实践,于是下载了一个现 ...

  4. SSH,SSM框架文件上传

    一.了解文件上传 1.1        什么是文件上传 将本地文件通过流的形式写到服务器上 1.2        文件上传的技术 JspSmartUpload: 其组件是应用jsp进行B/S程序开发过 ...

  5. 使用scp从远程服务器下载文件到本地

    [下载远程文件到本地] scp -P 6008 root@192.168.1.123:/usr/data/1.zip   /Users/abc/www [上传本地文件到远程] scp -P 6008  ...

  6. 使用xshell从远程服务器下载文件到本地

    XSHELL工具上传文件到Linux以及下载文件到本地(Windows) Xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz.首先你的L ...

  7. python urllib从远程服务器下载文件到本地

    #!/usr/bin/env python #-*-coding:utf--*-' #Filename:download_file.py import sys,os import urllib def ...

  8. ssm框架文件配置

    1 简介 Spring MVC (web level),采取 MVC 架构,意图取代麻烦的 Servlet 写法,简化 web 层 MyBatis (dao level),意图取代 jdbc 操作数据 ...

  9. C# HTTP系列11 以普通文件流方式上传文件远程服务器

    系列目录     [已更新最新开发文章,点击查看详细] 应用程序中上传附件是最常使用的操作之一,ASP.NET客户端一般通过上传控件实现, <input type="file" ...

随机推荐

  1. LCS - Longest Common Substring(spoj1811) (sam(后缀自动机)+LCS)

    A string is finite sequence of characters over a non-empty finite set \(\sum\). In this problem, \(\ ...

  2. javascript事件的类型整理

    mouseenter:只能进入目标元素才会触发: mouseleave:只能离开目标元素才会触发: mouseover:进入目标元素或者其子元素的时候触发: mouseout:离开目标元素或者其子元素 ...

  3. [AS3.0] 解决Number类型计算不精确问题

    看下面代码运行结果: trace(256.08+123.1); //379.17999999999995 trace(256.08-123.11); //132.96999999999997 trac ...

  4. vue重构后台管理系统调研

    Q4要来了,我来这家公司已经一个季度了,通过对公司前端框架的整体认识,对业务的一些认识,发现,这些东西也都是可以重构,无论是v2,还是v3的代码. 首先就要那后台管理来开刀来,现有的技术框架就是php ...

  5. Markdown基本语法总结

    一.标题 在想要设置为标题的文字前面加#来表示 一个#是一级标题,二个#是二级标题,以此类推.支持六级标题. 注:标准语法一般在#后跟个空格再写文字. 示例: # 这是一级标题 ## 这是二级标题 # ...

  6. SuperMap(无对应字段)空间属性挂接

    一.数据准备 将一个没有基本属性的模型数据集和一个含有位置等属性信息的shp属性表进行挂接,两组数据之间没有连接字段,但同属一个坐标系下,只能通过空间位置信息进行属性挂接. 二.数据处理 基本思路:将 ...

  7. 自定义 mapper

    1. 定义一个接口 public interface ItemMapper { List<Item> getItemList(); } 2. 编写  xml  文件 ,  将sql 语句填 ...

  8. Mac下使用Wine安装Notepad++

    下载: (链接: https://pan.baidu.com/s/1miOjLXY 密码: 2egg) 安装: 1.安装Wine 参考:http://www.cnblogs.com/EasonJim/ ...

  9. (转)Windows上使用CMake

    CMake简介 原文:http://blog.gclxry.com/use-cmake-on-windows/ 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软 ...

  10. 使用grunt搭建自动化的web前端开发环境

    使用grunt搭建自动化的web前端开发环境 我们一定经常听过grunt和gulp,它们都是用于搭建自动化的web前端开发环境的,这里主要介绍grunt的使用,值得一提的是,jQuery.bootst ...