как отправить изображение через httpurlconnection - PullRequest
0 голосов
/ 26 июня 2019

public void sendFile(File[] files) {
          httpURLConnection = (HttpURLConnection) url.openConnection();
          httpURLConnection.setUseCaches(false);
          httpURLConnection.setRequestMethod("POST");
          httpURLConnection.setDoOutput(true);
          httpURLConnection.setDoInput(true);
          httpURLConnection.setRequestProperty("Connection", "Keep-Alive");
          httpURLConnection.setRequestProperty("Cache-Control", "no-cache");
          httpURLConnection.setRequestProperty("Content-Type", "multipart/form-data; boundary=*****");
          BufferedOutputStream dos = new BufferedOutputStream(httpURLConnection.getOutputStream());

          dos.write("Content-Type: multipart/form-data; boundary=*****\r\n".getBytes());
          dos.write("Content-Transfer-Encoding: binary\r\n".getBytes());
          for (File file : files) {
            if(file.length() <= 0)
              continue;

            BufferedInputStream fileInput = new BufferedInputStream(new FileInputStream(file.getAbsoluteFile()));

            String what_is_here = String.format("Content-Disposition: form-data; name=\"files\"; filename=\"%s\"\r\n",
                    file.getAbsoluteFile());
            dos.write("--*****--\r\n".getBytes());
            dos.write(what_is_here.getBytes());
            dos.write("\r\n".getBytes());
            dos.flush();
            byte[] b = new byte[(int) file.length()];

            for (int i = 0; i < b.length; i++) {
              b[i] = (byte) fileInput.read();
            }

            dos.write(b);
            dos.write("\r\n".getBytes());
            dos.flush();
            fileInput.close();
          }
          dos.write("--*****--\r\n".getBytes());
          dos.flush();
          dos.close();
          Log.wtf("STATUS", httpURLConnection.getResponseCode() + "");
}

Мой вопрос о том, что не так с этим кодом?Я пытаюсь отправить изображение со своего планшета (Android) на мой локальный сервер (Spring), и он не работает Spring сервер не видит файлы, которые я отправляю.

@PostMapping("/file")
  public void handleFileUpload(@RequestParam MultipartFile[] files) throws IOException {
    System.out.println("FILES: " + files.length);
  }

Я использую этот метод для перехвата файлов, но длина отпечатков sysout равна 0;

Когда я вызываю этот метод через почтальона, он работает нормально.Так вот почему я думаю, что что-то не так с приложением для Android.Пожалуйста, дайте мне несколько советов, потому что я пытался много

...