一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java通過模擬post方式提交表單實現圖片上傳功能實例

java通過模擬post方式提交表單實現圖片上傳功能實例

2020-01-15 14:115iasp JAVA教程

這篇文章主要介紹了java通過模擬post方式提交表單實現圖片上傳功能實例,涉及Java針對表單的提交操作響應及文件傳輸的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了java通過模擬post方式提交表單實現圖片上傳功能。分享給大家供大家參考,具體如下:

模擬表單html如下:

?
1
2
3
4
5
6
7
8
9
10
11
<form action="up_result.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1">
 <label>
 <input type="text" name="name" value="" />
 </label>
 <label>
 <input type="file" name="userfile" />
 </label>
 <label>
 <input type="submit" value="上傳" />
 </label>
</form>

java代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package com.yanek.util;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.activation.MimetypesFileTypeMap;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class HttpPostUploadUtil {
 /**
  * @param args
  */
 public static void main(String[] args) {
  String filepath="E:\\ziliao\\0.jpg";
  String urlStr = "http://127.0.0.1:8080/minicms/up/up_result.jsp";
  Map<String, String> textMap = new HashMap<String, String>();
  textMap.put("name", "testname");
  Map<String, String> fileMap = new HashMap<String, String>();
  fileMap.put("userfile", filepath);
  String ret = formUpload(urlStr, textMap, fileMap);
  System.out.println(ret);
 }
 /**
  * 上傳圖片
  *
  * @param urlStr
  * @param textMap
  * @param fileMap
  * @return
  */
 public static String formUpload(String urlStr, Map<String, String> textMap,
   Map<String, String> fileMap) {
  String res = "";
  HttpURLConnection conn = null;
  String BOUNDARY = "---------------------------123821742118716"; //boundary就是request頭和上傳文件內容的分隔符
  try {
   URL url = new URL(urlStr);
   conn = (HttpURLConnection) url.openConnection();
   conn.setConnectTimeout(5000);
   conn.setReadTimeout(30000);
   conn.setDoOutput(true);
   conn.setDoInput(true);
   conn.setUseCaches(false);
   conn.setRequestMethod("POST");
   conn.setRequestProperty("Connection", "Keep-Alive");
   conn
     .setRequestProperty("User-Agent",
       "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)");
   conn.setRequestProperty("Content-Type",
     "multipart/form-data; boundary=" + BOUNDARY);
   OutputStream out = new DataOutputStream(conn.getOutputStream());
   // text
   if (textMap != null) {
    StringBuffer strBuf = new StringBuffer();
    Iterator iter = textMap.entrySet().iterator();
    while (iter.hasNext()) {
     Map.Entry entry = (Map.Entry) iter.next();
     String inputName = (String) entry.getKey();
     String inputValue = (String) entry.getValue();
     if (inputValue == null) {
      continue;
     }
     strBuf.append("\r\n").append("--").append(BOUNDARY).append(
       "\r\n");
     strBuf.append("Content-Disposition: form-data; name=\""
       + inputName + "\"\r\n\r\n");
     strBuf.append(inputValue);
    }
    out.write(strBuf.toString().getBytes());
   }
   // file
   if (fileMap != null) {
    Iterator iter = fileMap.entrySet().iterator();
    while (iter.hasNext()) {
     Map.Entry entry = (Map.Entry) iter.next();
     String inputName = (String) entry.getKey();
     String inputValue = (String) entry.getValue();
     if (inputValue == null) {
      continue;
     }
     File file = new File(inputValue);
     String filename = file.getName();
     String contentType = new MimetypesFileTypeMap()
       .getContentType(file);
     if (filename.endsWith(".png")) {
      contentType = "image/png";
     }
     if (contentType == null || contentType.equals("")) {
      contentType = "application/octet-stream";
     }
     StringBuffer strBuf = new StringBuffer();
     strBuf.append("\r\n").append("--").append(BOUNDARY).append(
       "\r\n");
     strBuf.append("Content-Disposition: form-data; name=\""
       + inputName + "\"; filename=\"" + filename
       + "\"\r\n");
     strBuf.append("Content-Type:" + contentType + "\r\n\r\n");
     out.write(strBuf.toString().getBytes());
     DataInputStream in = new DataInputStream(
       new FileInputStream(file));
     int bytes = 0;
     byte[] bufferOut = new byte[1024];
     while ((bytes = in.read(bufferOut)) != -1) {
      out.write(bufferOut, 0, bytes);
     }
     in.close();
    }
   }
   byte[] endData = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();
   out.write(endData);
   out.flush();
   out.close();
   // 讀取返回數據
   StringBuffer strBuf = new StringBuffer();
   BufferedReader reader = new BufferedReader(new InputStreamReader(
     conn.getInputStream()));
   String line = null;
   while ((line = reader.readLine()) != null) {
    strBuf.append(line).append("\n");
   }
   res = strBuf.toString();
   reader.close();
   reader = null;
  } catch (Exception e) {
   System.out.println("發送POST請求出錯。" + urlStr);
   e.printStackTrace();
  } finally {
   if (conn != null) {
    conn.disconnect();
    conn = null;
   }
  }
  return res;
 }
}

希望本文所述對大家Java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 天天色视频 | 亚洲国产精品自在自线观看 | 王王的视频ivk | 国产成人小视频 | 色综合网亚洲精品久久 | 国产xxx在线| 精品国偷自产在线 | 波多野结衣快播 | 亚洲国产精品久久网午夜 | 国产免费丝袜调教视频 | 国产色在线观看 | 国产精品福利在线观看免费不卡 | 14一15sexvideo日本 | 日本久久热 | 喜欢老头吃我奶躁我的动图 | 日韩制服丝袜在线观看 | 亚洲天堂视频在线观看 | 华人亚洲欧美精品国产 | 亚洲成人国产 | 久久黄色大片 | 日本精品一区二区在线播放 | 天美视频在线 | 欧美性受xxxx88喷潮 | 羞羞麻豆国产精品1区2区3区 | 欧美日韩亚毛片免费观看 | 国产精品久久国产精品99 gif | 国内免费高清视频在线观看 | 手机国产乱子伦精品视频 | 大香人蕉免费视频75 | 男人猛戳女人下部30分钟 | 国色天香社区视频在线观看免费完整版 | 欧美一级二级片 | 色涩导航 | 欧美在线视频一区二区 | 视频在线观看高清免费 | 久久综合狠狠综合久久综合88 | 出轨同学会免费观看 | 欧美人妖大啪啪 | 亚洲精品一二三四 | 龟甲情感超市全文阅读 小说 | 国产日产精品久久久久快鸭 |