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的网络通 ...
随机推荐
- Teamcenter无法创建多余账号怎么办?
西门子的产品Teamcenter,用户账号的许可是命名的许可类型,数量是限定的:例如,账号许可购买了25个,那么活动账号已经达到25了,再创建第26个账号将无法创建.没办法创建多余的账号,怎么办? 当 ...
- 1000粉!使用Three.js制作一个专属3D奖牌🥇
背景 破防了 !突然发现 SegmentFault 平台的粉丝数量已经突破 1000 了,它是我的三个博客平台掘金.博客园.SegmentFault中首个粉丝突破 1000 的,于是设计开发这个页面, ...
- java有四种访问权限
Java面向对象的封装性是通过对成员变量和方法进行访问控制实现的,访问控制分为4个等级:私有.默认.保护和公有,具体规则如下表:
- golang反射reflect机制用法
package main import ( "fmt" "reflect" ) type User struct { Id int Name string Ag ...
- maven项目 子父级工程。
一 .什么是 maven 子父级工程? 建立一个maven项目,然后在该项目 下创建一个module,子级的maven,他继承于父级项目. 1.新建立 maven项目,file ------new- ...
- 鸿蒙轻内核源码分析:文件系统FatFS
摘要:本文为大家介绍FatFS文件系统结构体的结构体和全局变量,并分析FatFS文件操作接口. 本文分享自华为云社区<鸿蒙轻内核M核源码分析系列二一 03 文件系统FatFS>,作者:zh ...
- NOIP2020 部分简要题解
C 首先考虑 \(n = 2\) 怎么做. 可以发现的是我们一定要借助空柱子 \(n + 1\),并且两个柱子都必须要移动. 注意到此时本质上就是将两种球分类,于是我们考虑能否将一个柱子上两种颜色分开 ...
- 新手应该如何学习 PHP 语言?
其实php开发,不只是一个简单的php开发,而是整个一个行业,一般叫web开发,或者php后端开发,所以从html,css,js,jq,php,sql基本这些都要有了解.当然你有html,css基础, ...
- 【转】C# / Extension 扩展方法
扩展方法简介扩展方法使你能够向现有类型"添加"方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调 ...
- Tomcat启动报错org.apache.catalina.core.StandardContext listenerStart
感谢原文作者:西北码农 原文链接:https://blog.csdn.net/bitree1/article/details/72236633 解决方法: 1.检查配置信息有无异常:如 web.xml ...