java 接口 文件传输
调用接收端
@ApiOperation(value = "文件请求展示方法")
@RequestMapping(value = "/showFile", method = RequestMethod.GET)
public void showFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
//获取接口url
String url = "http://127.0.0.1/a/b";
//然后根据表名获取公司信息
HttpPost httppost = new HttpPost(url);
List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("comName", "111111"));
HttpResponse httpResponse = null;
HttpEntity httpEntity = null;
try {
httppost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(30000).setConnectionRequestTimeout(30000)
.setSocketTimeout(30000).build();
httppost.setConfig(requestConfig);
HttpClient httpclient = HttpClients.custom().setRetryHandler(new DefaultHttpRequestRetryHandler()).build();
httpResponse = httpclient.execute(httppost);
}catch (Exception e1) {
logger.error("----------------失败");
}
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {// 请求正常
try {
httpEntity = httpResponse.getEntity();
BufferedInputStream br = new BufferedInputStream(httpEntity.getContent());
byte[] buf = new byte[1024];
int len = 0;
response.reset(); // 非常重要
response.setContentType("application/pdf");
String fileName ="report.pdf";
try {
fileName = httpResponse.getAllHeaders()[5].getValue().split(";")[1].split("=")[1];
} catch (Exception e) {
} response.setHeader("Content-Disposition",
"inline; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8")); OutputStream out = response.getOutputStream();
while ((len = br.read(buf)) != -1)
out.write(buf, 0, len);
br.close();
out.flush(); } catch (Exception e) {
logger.error("解析失败");
}
}else {
logger.error("调用失败");
} }
文件存储方
@ApiOperation(value = "文件支持接口")
@RequestMapping(value = "/getReport", method = RequestMethod.GET)
public Object getReport(HttpServletRequest request,HttpServletResponse response, ModelMap modelMap) {
Map<String, Object> params = WebUtil.getParameterMap(request);
String comName = (String) params.get("comName");
File file = new File("C:\\Users\\Administrator\\Desktop\\滴滴电子发票.pdf"); try {
response.setContentType("application/pdf");
response.setHeader("Content-Disposition",
"inline; filename=" + java.net.URLEncoder.encode(file.getName(), "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} try {
ServletOutputStream pw = response.getOutputStream();
BufferedInputStream br = new BufferedInputStream(new FileInputStream(file));
byte[] by = new byte[(int) file.length()];
while(br.read(by)!=-1){
pw.write(by);
}
pw.flush();
} catch (IOException e1) {
e1.printStackTrace();
} return null;
}
java 接口 文件传输的更多相关文章
- Java简单文件传输 socket简单文件传输示例
服务器端代码: import java.io.*; import java.net.*; /** * Created with IntelliJ IDEA. * User: HYY * Date: 1 ...
- java实现文件传输
在windows下装了个linux虚拟机,两者之间传输文件挺麻烦的.写了个简单的文件传输程序,来方便自己数据传送. server 端: import java.io.BufferedReader;im ...
- Java Tcp文件传输---转载
/** 客户端 1.服务端点 2.读取客户端已有的文件数据 3.通过socket输出流发给服务端 4.读取服务端反馈信息 5.关闭 **/ import java.io.*; import java. ...
- java对于文件传输时---编码格式的一些设置方法
- ----转 读文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够 ...
- java文件传输接口
开发的时候碰到这样的需求:需要在一个系统(客户端发送请求)中将文件传输至另外一个系统(服务端接收)中去的实现方式,可以批量传输文件,代码如下: 客户端请求: public String upLoadF ...
- java实现两台电脑间TCP协议文件传输
记录下之前所做的客户端向服务端发送文件的小项目,总结下学习到的一些方法与思路. 注:本文参考自<黑马程序员>视频. 首先明确需求,在同一局域网下的机器人A想给喜欢了很久的机器人B发送情书, ...
- 循序渐进Java Socket网络编程(多客户端、信息共享、文件传输)
目录[-] 一.TCP/IP协议 二.TCP与UDP 三.Socket是什么 四.Java中的Socket 五.基本的Client/Server程序 六.多客户端连接服务器 七.信息共享 八.文件传输 ...
- Java基于Socket文件传输示例(转)
最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解.在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加 ...
- java基于P2P的聊天和文件传输实例
用java的NIO技术编写的 1. 支持聊天功能 2. 拖拽文件能够实现文件传输功能.也能够是目录 3. 启动时能够选择server端或client端启动 4. 本人原创.学习NIO和java的网络通 ...
随机推荐
- class、抽象类、接口区别
Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 由于抽象类不 ...
- JVM调优2-远程监控
监控远程JVM VisualJVM不仅是可以监控本地jvm进程,还可以监控远程的jvm进程,需要借助于JMX技术实现. 什么是JMX JMX(Java Management Extensions,即J ...
- springboot应用中使用CommandLineRunner
在springboot应用中,存在这样的使用场景,在springboot ioc容器创建好之后根据业务需求先执行一些操作,springboot提供了两个接口可以实现该功能: CommandLineRu ...
- CSS3 动画3D视角下 旋转圆环
首先是 transform 属性: transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. 加上对应属性则可得到3D透视效果下的形态 本次以圆形( ...
- 使用Rainbond打包业务模块,实现业务积木式拼装
背景 每个程序员在学习开发的过程中,都知道解耦和模块化的重要性,也希望自己设计和开发的程序支持模块化,开发好的模块其他人就能快速复用,为了达成这个效果,我们学习各种模块化和解耦的技术,从面向对象的设计 ...
- 【视频解码性能对比】opencv + cuvid + gpu vs. ffmpeg + cpu
视频大小:1168856 字节画面尺寸:480*848帧数:275opencv + cuvid + tesla P4, 解码性能:1426.84 fps ffmpeg 4.0 API + [Intel ...
- MySQL技术内幕(一)
MySQL技术内幕 2. InnoDB存储引擎 2.1 InnoDB存储引擎概述 特点:行锁设计.支持MVCC.支持外键.提供一致性非锁定读 2.2 InnoDB体系架构 2.2.1 后台线程 Inn ...
- 不使用pvc的方式在K8S中部署apisix-gateway
不使用pvc的方式在K8S中部署apisix-gateway 简介 我的apisix使用etcd作为数据存储服务器,官方的使用pvc方式或者docker-compose的方式,对于新手不太友好,本篇是 ...
- Git .gitignore 不起作用的解决办法
解决方法的原理:.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的. 解决方案:git rm -r --cached . ...
- Docker版本Jenkins的使用
一. 什么是Jenkins Jenkins是当前非常流行的一款持续集成工具,可以帮助大家把更新后的代码自动部署到服务器上运行. 二. 为什么用docker版的Jenkins Jenkins主要有三种安 ...