java服务端模拟form传送文件
2016-05-18 00:00
246 查看
@RequestMapping("/upload")
public String upload(MultipartFile photo, int item_id, Model model){
String boundary = "boundary=----WebKitFormBoundaryIkBUyE4cJQ7ZASxi";
String Enter = "\r\n";
String url = "http://xxxxxxxx.com/uploadFile";
try {
URL realUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setInstanceFollowRedirects(true);
conn.setRequestProperty("Content-Type","multipart/form-data;boundary=" + boundary);
conn.connect();
OutputStream outStream = conn.getOutputStream();
DataOutputStream dos = new DataOutputStream(outStream);
//part 1
String part1 = "--" + boundary + Enter
+ "Content-Type: application/octet-stream" + Enter
+ "Content-Disposition: form-data; filename=\""+photo.getOriginalFilename()+"\"; name=\"fileData\"" + Enter + Enter;
//part 2
String part2 = Enter
+ "--" + boundary + Enter
+ "Content-Type: text/plain" + Enter
+ "Content-Disposition: form-data; name=\"dataFormat\"" + Enter + Enter
+ "hk" + Enter
+ "--" + boundary + "--";
InputStream filein = photo.getInputStream();
byte[] buffer = new byte[1024];
int len;
dos.writeBytes(part1);
while((len = filein.read(buffer)) != -1){
dos.write(buffer);
}
dos.writeBytes(part2);
dos.flush();
filein.close();
// 返回结果
ObjectMapper mapper = new ObjectMapper();
Map rMap = mapper.readValue(conn.getInputStream(), Map.class);
dos.close();
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
return null;
}
return "xxxx";
}
public String upload(MultipartFile photo, int item_id, Model model){
String boundary = "boundary=----WebKitFormBoundaryIkBUyE4cJQ7ZASxi";
String Enter = "\r\n";
String url = "http://xxxxxxxx.com/uploadFile";
try {
URL realUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setInstanceFollowRedirects(true);
conn.setRequestProperty("Content-Type","multipart/form-data;boundary=" + boundary);
conn.connect();
OutputStream outStream = conn.getOutputStream();
DataOutputStream dos = new DataOutputStream(outStream);
//part 1
String part1 = "--" + boundary + Enter
+ "Content-Type: application/octet-stream" + Enter
+ "Content-Disposition: form-data; filename=\""+photo.getOriginalFilename()+"\"; name=\"fileData\"" + Enter + Enter;
//part 2
String part2 = Enter
+ "--" + boundary + Enter
+ "Content-Type: text/plain" + Enter
+ "Content-Disposition: form-data; name=\"dataFormat\"" + Enter + Enter
+ "hk" + Enter
+ "--" + boundary + "--";
InputStream filein = photo.getInputStream();
byte[] buffer = new byte[1024];
int len;
dos.writeBytes(part1);
while((len = filein.read(buffer)) != -1){
dos.write(buffer);
}
dos.writeBytes(part2);
dos.flush();
filein.close();
// 返回结果
ObjectMapper mapper = new ObjectMapper();
Map rMap = mapper.readValue(conn.getInputStream(), Map.class);
dos.close();
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
return null;
}
return "xxxx";
}
相关文章推荐
- spring捡漏
- Js编码和Java后台解码
- eclipse搭建springMVC项目发现的问题
- 最全面的使用idea和gradle把java项目打包成jar的方法
- java 文件zip打包
- JAVA HashSet简单代码示例
- JAVA Map简单代码示例
- java 电话归属地
- java,过滤html标签
- 使用SpringBoot,优质快速开发Java项目
- struts2+spring3+hibernate4
- webService(CXF开发SOAP应用,CXF整合spring)未完待续
- 临时设置jdk环境变量
- Java是如何处理别名(aliasing)的
- Java设计模式之代理模式
- Java Map集合知多少?
- Java编程思想第四版第六章学习——访问权限设置
- eclipse自动部署问题
- Java变量名命名规则
- java 接口 & 抽象类