您的位置:首页 > 编程语言 > Java开发

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";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: