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的网络通 ...
随机推荐
- Python科学计算类库
Numpy是什么 Numpy是一个开源的Python科学计算库.使用Numpy,就可以很自然地使用数组和矩阵.Numpy包含很多实用的数学函数,涵盖线性代数运算.傅里叶变换和随机数生成等功能. 矩阵: ...
- C#服务器端使用office组件
http://www.myexception.cn/asp-dotnet/386522.html 不装office那就把Interop.Excel.dll Interop.Office.dll Int ...
- 2022GDUT寒训专题一J题
题目 题面 给你一个长度为 n的整数序列{A1,A2,⋯,A**n},要求从中找出一段连续的长度不超过 m的非空子序列,使得这个序列的和最大. 输入格式 第一行为两个整数 n,m: 第二行为 n个用空 ...
- 一文读懂 HTTP/1HTTP/2HTTP/3
转自 https://zhuanlan.zhihu.com/p/102561034
- WebGPU图形编程(4):构建一个彩色的正方形<学习引自徐博士教程>
本节我们来复原一个彩色的正方形,前提告知,本节的shaders和main的代码从结构上有调整,我会更加详细的描述每行的代码意思: 源代码下载地址:https://github.com/jack1232 ...
- django-环境搭建-开使hello world!
django的环境安装非常简单,只需用pip安装一个django库就可以了,编辑器选择pycharm pip install django==2.1.2 查看版本号:pip show django C ...
- lua之自索引
Father={ a=100, b=200 } function Father:dis() print(self.a,self.b) end Father.__index=Father Son= { ...
- SQL查询字段,起别名,列参与数学运算
13.简单查询 13.1.查询一个字段? select 字段名 from 表名: 其中要注意: select和from都是关键字 字段名和表名都是标识符. 强调: 对于SQL语句说,是通用的 所有的S ...
- React/Vue 项目在 GitHub Pages 上部署时资源的路径问题
GitHub Pages 常被用来部署个人博客,而无论是大名鼎鼎的 Jekyll,还是 Hugo 或者 Hexo,他们都是将我们的文章嵌入模板,发布为静态页面,也就是说,GitHub Pages (G ...
- linux文件压缩与文件夹压缩(打包)
目录 一:linux文件压缩 1.linux常见的压缩包有哪些? 2.bzip压缩(文件) 二:打包(文件夹压缩) 1.打包命令 2.参数 3.参数解析(实战) 4.注意事项 简介: win中的压缩包 ...