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" ...
随机推荐
- 设置、读取、删除cookie
刚才用虚拟机当服务器,开了两个服务(端口号不同),发现同样的cookie:在别的网站下面没有发现该cookie.说明cookie只是对应相应的网站的(自己得出的结论) ---------------- ...
- elasticsearch 5.6.4自动创建索引与mapping映射关系 +Java语言
由于业务上的需求 ,最近在研究elasticsearch的相关知识 ,在网上查略了大部分资料 ,基本上对elasticsearch的数据增删改都没有太大问题 ,这里就不做总结了 .但是,在网上始终没 ...
- 关闭tomcat端口号
一. CentOS 关闭tomcat端口号 1. 首先保证liunx下 ps -ef | grep java 2. 会显示如下信息 我使用的是IDEA打包的war包.tomcat是自带的 3. 查看未 ...
- Java反射与自定义注解
反射,在Java常用框架中屡见不鲜.它存在于java.lang.reflact包中,就我的认识,它可以拿到类的字段和方法,及构造方法,还可以生成对象实例等.对深入的机制我暂时还不了解,本篇文章着重在使 ...
- MySQL数据库管理
好记性不如烂笔头 1.MySQL启动基本原理 /etc/init.d/mysqld 是一个shell启动脚本,启动后会调用mysqld_safe脚本,最后调用的是mysqld主程序启动mysql. 单 ...
- 编程开发之--java多线程学习总结(4)
3.使用锁机制lock,unlock package com.lfy.ThreadsSynchronize; import java.util.concurrent.locks.Lock; impor ...
- JavaScript DOM编程艺术 笔记(三)函数
函数function 是在你的代码里随时调用的语句 每个函数是个短小的脚本,arguments,传递的参数 function name(arguments){ statements; } functi ...
- CentOS 7 安装方式汇总
U盘安装 通过U盘安装 CentOS 的过程和安装Windows非常相似,首先将 CentOS 镜像文件刻录到U盘(或者光盘),设置固件(BIOS或者UEFI)从U盘启动,然后逐步设置即可. 使用 V ...
- excel 正则表达式用法
Private Sub RegEx_Replace() Dim myRegExp As Object Dim Myrange As Range, C As Range ...
- WebDriver中的Actions对象
我们可以利用Actions对象来模拟鼠标的操作以及页面的拖拽 1.模拟鼠标的双击操作: 1)模拟双击一个div,验证点击之前的字体为14号 2)点击后字体为20号 Actions builder = ...