如下所示:
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
|
//客戶端代碼 public static void main(String[] args) throws IOException { DataInputStream in = null ; OutputStream out = null ; HttpURLConnection conn = null ; JSONObject resposeTxt = null ; InputStream ins = null ; ByteArrayOutputStream outStream = null ; try { URL url = new URL( "http://10.28.160.160:9080/main/uploadFile?fileName=列表.txt" ); conn = (HttpURLConnection) url.openConnection(); // 發(fā)送POST請(qǐng)求必須設(shè)置如下兩行 conn.setDoOutput( true ); conn.setUseCaches( false ); conn.setRequestMethod( "POST" ); conn.setRequestProperty( "Content-Type" , "text/html" ); conn.setRequestProperty( "Cache-Control" , "no-cache" ); conn.setRequestProperty( "Charsert" , "UTF-8" ); conn.connect(); conn.setConnectTimeout( 10000 ); out = conn.getOutputStream(); File file = new File( "H:/Users/chengtingyu/Desktop/test/list.txt" ); 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(); // 返回流 if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { ins = conn.getInputStream(); outStream = new ByteArrayOutputStream(); byte [] data = new byte [ 1024 ]; int count = - 1 ; while ((count = ins.read(data, 0 , 1024 )) != - 1 ) { outStream.write(data, 0 , count); } data = null ; resposeTxt = JSONObject.parseObject( new String(outStream .toByteArray(), "UTF-8" )); } } catch (Exception e) { e.printStackTrace(); } finally { if (in != null ) { in.close(); } if (out != null ) { out.close(); } if (ins != null ) { ins.close(); } if (outStream != null ) { outStream.close(); } if (conn != null ) { conn.disconnect(); } } } //服務(wù)端代碼 public String uploadFile() throws Exception{ String fileName = request.getParameter( "fileName" ); String fileFullPath = "H:/Users/chengtingyu/Desktop/" + fileName; InputStream input = null ; FileOutputStream fos = null ; try { input = request.getInputStream(); File file = new File( "H:/Users/chengtingyu/Desktop" ); if (!file.exists()){ file.mkdirs(); } fos = new FileOutputStream(fileFullPath); int size = 0 ; byte [] buffer = new byte [ 1024 ]; while ((size = input.read(buffer, 0 , 1024 )) != - 1 ) { fos.write(buffer, 0 , size); } //響應(yīng)信息 json字符串格式 Map<String,Object> responseMap = new HashMap<String,Object>(); responseMap.put( "flag" , true ); //生成響應(yīng)的json字符串 String jsonResponse = JSONObject.toJSONString(responseMap); sendResponse(jsonResponse); } catch (IOException e) { //響應(yīng)信息 json字符串格式 Map<String,Object> responseMap = new HashMap<String,Object>(); responseMap.put( "flag" , false ); responseMap.put( "errorMsg" , e.getMessage()); String jsonResponse = JSONObject.toJSONString(responseMap); sendResponse(jsonResponse); } finally { if (input != null ){ input.close(); } if (fos != null ){ fos.close(); } } return null ; } /** * 返回響應(yīng) * * @throws Exception */ private void sendResponse(String responseString) throws Exception { response.setContentType( "application/json;charset=UTF-8" ); PrintWriter pw = null ; try { pw = response.getWriter(); pw.write(responseString); pw.flush(); } finally { IOUtils.closeQuietly(pw); } } |
以上這篇利用HttpUrlConnection 上傳 接收文件的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。