httpurlConnection客户端发送文件与服务端接受文件
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection; import org.apache.commons.lang.StringUtils;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration; import com.kexion.eagle.common.dao.DaoException;
import com.kexion.ssdr.dmp.web.utils.PropertiesUtil;
//客户端发送
public class TestSendFile { public static void main(String[] args) {
try {
sendFile1("Template_ZYMLBZHJC.xlsx", "D:"+File.separatorChar+"2019"+File.separatorChar+"个人"+File.separatorChar+"Template_ZYMLBZHJC.xlsx", "zxsb");
} catch (Exception e) {
e.printStackTrace();
}
}
private static String sendFile1(String filename,String dir,String type) throws Exception {
PropertiesUtil util = new PropertiesUtil("config/zymlk.properties");
Object obj = util.get(type);
if(obj==null){
throw new Exception("调用省厅接口失败");
}
String actionUrl = (java.lang.String) util.get(type);
if(StringUtils.isEmpty(actionUrl)){
throw new Exception("调用省厅接口失败");
} String u1 = actionUrl+"?filename="+filename;
URL url =new URL(u1);
System.out.println(u1);
URLConnection urlConnection = url.openConnection();
HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;
httpURLConnection.setDoOutput(true);
httpURLConnection.setUseCaches(false);
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setRequestProperty("Content-type", "text/html");
httpURLConnection.setRequestProperty("Cache-Control", "no-cache");
httpURLConnection.setRequestProperty("Charset", "UTF-8");
httpURLConnection.connect(); OutputStream out = httpURLConnection.getOutputStream();
DataInputStream in = null; File file = new File(dir);
in = new DataInputStream(new FileInputStream(file));
int bytes=0;
byte[] buffer = new byte[1024];
while((bytes=in.read(buffer))!=-1){
out.write(buffer,0,bytes);
}
out.flush(); InputStream inputStream=null;
InputStreamReader inputStreamReader = null;
BufferedReader reader = null;
StringBuffer resultBuffer = null;
if(httpURLConnection.getResponseCode()==HttpURLConnection.HTTP_OK){
inputStream = httpURLConnection.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
reader = new BufferedReader(inputStreamReader);
String tmpLine = null;
resultBuffer = new StringBuffer();
while((tmpLine=reader.readLine())!=null){
resultBuffer.append(tmpLine);
resultBuffer.append("\n");
}
}else{
int code=httpURLConnection.getResponseCode()
throw new DaoException("上报失败,失败代码["+code+"]");
} in.close();
out.close();
reader.close();
inputStreamReader.close();
inputStream.close();
System.out.println(resultBuffer.toString());
return resultBuffer.toString();
} }
//服务端接收
package com.dd.demo.controller; import java.io.*;
import java.util.List; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; @Controller
public class StbmglController {
//打印日志
private static final Logger logger = LoggerFactory.getLogger(StbmglController.class); @ResponseBody
@RequestMapping("getDsFile1")
public String getDsFile1(HttpServletRequest request,HttpServletResponse response){
logger.info("开始接受文件");
JSONObject result = new JSONObject();
try { String filename = request.getParameter("filename");
logger.info("filename={}",filename);
InputStream input = request.getInputStream();
File getFile = new File("C:\\Users\\Administrator\\Desktop\\"+filename); FileOutputStream fos = new FileOutputStream(getFile);
boolean flag = false;
int size = 0;
byte[] buffer = new byte[1024];
while ((size=input.read(buffer,0,1024))!=-1){
flag = true;
fos.write(buffer,0,size);
}
result.put("success",flag);
} catch (Exception e) {
result.put("success",false);
result.put("msg","接受文件失败");
logger.error("接受文件失败");
e.printStackTrace();
}
return result.toString();
}
}
httpURLConnection.getResponseCode()
httpurlConnection客户端发送文件与服务端接受文件的更多相关文章
- android 上传文件用php程序在服务端接受(一)
php服务端接受程序..file_up.php. <?php /* require_once('lib/session_config.php'); require_once('lib/flydc ...
- Java后端HttpClient Post提交文件流 及服务端接收文件流
客户端将文件转换为流发送: 依赖的包: <dependency> <groupId>org.apache.httpcomponents</groupId> < ...
- android 发送GET请求 服务端接收乱码的问题
在android的编程中常会使用get/post请求,在用get请求的时候数据是直接放在url当中的 例如: http://apicloud.mob.com/v1/weather/query?key= ...
- C#中服务端接受前端JSON字符串转换成字典集合
我们是否可以把从前端接受的JSON字符串转换成字典集合呢? 比如从前端接收:{'size':'10', 'weight':'10kg'} 在服务端转换成:[{size:"10"}, ...
- PHP学习笔记——上传文件到服务端的文件夹下
环境 开发包:appserv-win32-2.5.10 服务器:Apache2.2 数据库:phpMyAdmin 语言:php5,java 平台:windows 10 需求 编写一个PHP脚本页面,可 ...
- Eureka客户端续约及服务端过期租约清理源码解析
在之前的文章:EurekaClient自动装配及启动流程解析中,我们提到了在构造DiscoveryClient时除了包含注册流程之外,还调度了一个心跳线程: scheduler.schedule( n ...
- SpringMVC文件上传下载(单文件、多文件)
前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...
- httpurlconnection发送文件到服务端并接收
httpurlconnection发送文件到服务端并接收 客户端 import java.io.DataInputStream; import java.io.File; import java.io ...
- PHP-Socket服务端客户端发送接收通信实例详解
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://fighter.blog.51cto.com/1318618/1533957 So ...
随机推荐
- 22-系统SQL整理
1.查看内存使用情况 select * from sys.dm_os_sys_memory 2.查看当前进程的情况 select * from sys.sysprocesses 3.查看非系统进程的 ...
- Codeforces Round #584 D. Cow and Snacks
链接: https://codeforces.com/contest/1209/problem/D 题意: The legendary Farmer John is throwing a huge p ...
- JQuery 实践--扩展JQuery
Why扩展JQuery通过扩展可以利用JQuery所提供的现有代码基础.避免从头编写代码 有效扩展JQuery的规则扩展JQuery的两种形式: $上直接定义实用工具函数 和JQuery包装集进行操作 ...
- C++基础--if/else和switch/case的区别
if和switch的区别: 一.语句的格式: if/else的写法格式如下: int nA, nB; scanf_s("%d", &nA); //输入整数并赋值给变量a s ...
- 简单删除我的电脑里的wps云文档图标
装个wps,用着都挺好,我的电脑一直存在wps云文档的图标. 看久了就觉得很膈应,那就直接干掉吧. 桌面新建一个文本文件,选中新建文本文档.txt 按f2 然后修改为11.reg(任意名称只要保证后缀 ...
- [2]windows内核情景分析--系统调用
Windows的地址空间分用户模式与内核模式,低2GB的部分叫用户模式,高2G的部分叫内核模式,位于用户空间的代码不能访问内核空间,位于内核空间的代码却可以访问用户空间 一个线程的运行状态分内核态与用 ...
- c 语言延时函数
/*--- 等待x毫秒 ---*/ int sleep(unsigned long x) { clock_t c1 = clock(), c2; do { ) /* 错误 */ ; } while ( ...
- c 判断是否为 字母或数字(iswalnum example)
#include <stdio.h> #include <wctype.h> int main () { int i; wchar_t str[] = L"c3p.o ...
- JavaWeb_(Spring框架)整合Mybatis加入事务操作数据库
整合Mybatis a)导包: i.Spring:基本包.aop.aspects.jdbc.tx.test: ii.Mybatis:mybatis-3.4.6 iii.整合包:mybatis-spri ...
- yquery-操作样式属性
前几天回家,参加了全国的成人高考,都说学历是找工作的敲门砖,其实一点都不假,尤其是现在的社会竞争力那么强,你不学就会被淘汰.像要过自己想要的生活,就必须努力学习,努力赚钱,买自己想买的,过自己想过的. ...