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

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

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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 无耻之徒第十一季在线观看 | 午夜AV内射一区二区三区红桃视 | 放荡女小洁的性日记 | 91精品手机国产露脸 | 911香蕉视频 | 蜜月aⅴ免费一区二区三区 蜜桃影像传媒推广 | 久久不射电影网 | 亚洲成人看片 | jiizz亚洲护士厕所 | h肉动漫在线视频无修无遮挡 | 四虎影院在线免费 | 国产成人无精品久久久 | 三级欧美在线 | 日韩在线资源 | 国产午夜精品一区二区三区 | 91热爆在线 | 亚洲精品久久久打桩机 | 国产成人影院一区二区 | 丰满肥臀风间由美357在线 | 偷偷操不一样 | 日韩欧美视频二区 | 门房秦大爷小说 | 午夜国产精品 | 韩国一级淫片特黄特刺激 | 日韩高清在线高清免费 | 校花被拖到野外伦小说 | 爱情岛论坛自拍永久入口 | 亚洲国产情侣一区二区三区 | 精品国产线拍大陆久久尤物 | 91精品国产综合久久精品 | 手机看片国产免费久久网 | 冰漪丰满大乳人体图片欣赏 | 2021久久 | 暗卫调教女主肉高h | 67194最新网址 | 日韩在线一区 | 加勒比一本大道香蕉在线视频 | 国产一区二区三区在线看片 | 成人影院vs一区二区 | 人人爱操 | pron欧美|