java言語でhttp通信を利用したファイルアップロードアプリを作成しています。
下記のコードで試してみました。
HTTP_OKで返ってきており、得にエラーも出ていませんが
実際にはアップロード先にファイルはアップされていません。
検索の仕方が悪いのか参考になりそうなwebページも見つかりませんでした。
エラーがでないにも関わらず、実際にはアップデートされない原因はなんでしょうか。
よろしくお願いします。
urlには実際にはIPアドレスを入れています。
ダウンロードアプリも別で作成していますが、ダウンロードの方は同じIPで正常にダウンロードできることを確認しております。
java
1public static void main(String[] args) throws IOException { 2 3 String filename = "D:\test\upload\uptest.zip"; 4 String url = "http://xxx.xxx.xxx.xxx/upload"; 5 int res = Sample.Send(filename, url, "POST"); 6 if (res == HttpURLConnection.HTTP_OK) { 7 System.err.println("Success!"); 8 } else { 9 System.err.printf("Failed %d\n", res); 10 } 11 12 }
java
1 public static int Send(String filename, String url, String method) throws IOException { 2 try (FileInputStream file = new FileInputStream(filename)) { 3 HttpURLConnection con = (HttpURLConnection) new URL(url).openConnection(); 4 final String boundary = UUID.randomUUID().toString(); 5 con.setDoOutput(true); 6 con.setRequestMethod(method); 7 con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); 8 try (OutputStream out = con.getOutputStream()) { 9 out.write(("--" + boundary + EOL + 10 "Content-Disposition: form-data; name=\"file\"; " + 11 "filename=\"" + filename + "\"" + EOL + 12 "Content-Type: application/octet-stream" + EOL + EOL) 13 .getBytes(StandardCharsets.UTF_8) 14 ); 15 byte[] buffer = new byte[4096]; 16 int size = -1; 17 while (-1 != (size = file.read(buffer))) { 18 out.write(buffer, 0, size); 19 } 20 out.write((EOL + "--" + boundary + "--" + EOL).getBytes(StandardCharsets.UTF_8)); 21 out.flush(); 22 System.err.println(con.getResponseMessage()); 23 return con.getResponseCode(); 24 } finally { 25 con.disconnect(); 26 } 27 } 28 } 29
あなたの回答
tips
プレビュー