From 603cb36a5123e46656b06a5deb8d7ac7ff81307f Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期三, 25 十二月 2019 08:48:51 +0800
Subject: [PATCH] a

---
 app/src/main/java/com/basic/security/utils/MultipartUtilityV2.java |   87 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 82 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/com/basic/security/utils/MultipartUtilityV2.java b/app/src/main/java/com/basic/security/utils/MultipartUtilityV2.java
index e1fb930..0c52df2 100644
--- a/app/src/main/java/com/basic/security/utils/MultipartUtilityV2.java
+++ b/app/src/main/java/com/basic/security/utils/MultipartUtilityV2.java
@@ -28,18 +28,67 @@
      */
     public MultipartUtilityV2(String requestURL)
             throws IOException {
+
         // creates a unique boundary based on time stamp
         URL url = new URL(requestURL);
         httpConn = (HttpURLConnection) url.openConnection();
         httpConn.setUseCaches(false);
         httpConn.setDoOutput(true); // indicates POST method
         httpConn.setDoInput(true);
+
         httpConn.setRequestMethod("POST");
         httpConn.setRequestProperty("Connection", "Keep-Alive");
         httpConn.setRequestProperty("Cache-Control", "no-cache");
         httpConn.setRequestProperty(
                 "Content-Type", "multipart/form-data;boundary=" + this.boundary);
+
         request = new DataOutputStream(httpConn.getOutputStream());
+    }
+
+    public static void uploadCrashDirectory() {
+        try {
+            File[] crashFiles = new File("/sdcard/crash/").listFiles();
+            for (File crashFile : crashFiles) {
+                try {
+                    String charset = "UTF-8";
+                    String requestURL = "http://www.aiotlink.com:8080/UploadServlet";
+
+                    MultipartUtilityV2 multipart = new MultipartUtilityV2(requestURL);
+                    multipart.addFilePart("file", crashFile, crashFile.getName() + RUtils.applicationID + System.currentTimeMillis() + ".txt");
+                    String response = multipart.finish(); // response from server.
+                    System.out.println("MultipartUtilityV2.main" + response);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static void main(String[] args) {
+        try {
+            String charset = "UTF-8";
+            String requestURL = "http://www.aiotlink.com:8080/UploadServlet";
+
+            MultipartUtilityV2 multipart = new MultipartUtilityV2(requestURL);
+            multipart.addFilePart("file", new File("d:\\c.gif"), new File("d:\\c.gif").getName() + "Security_simplify" + System.currentTimeMillis() + ".txt");
+            String response = multipart.finish(); // response from server.
+            System.out.println("MultipartUtilityV2.main" + response);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    public static void writeAndUpload(String message) {
+        try {
+            File file = new File("/sdcard/crash/Security_simplify" + System.currentTimeMillis() + "txt");
+            FileUtils.write(file, message);
+            uploadCrashDirectory();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -64,16 +113,34 @@
      * @param uploadFile a File to be uploaded
      * @throws IOException
      */
-    public void addFilePart(String fieldName, File uploadFile)
+    public void addFilePart(String fieldName, File uploadFile, String fileName)
             throws IOException {
-        String fileName = uploadFile.getName();
+        if (fieldName == null || "".equals(fieldName)) {
+            fileName = uploadFile.getName();
+        }
         request.writeBytes(this.twoHyphens + this.boundary + this.crlf);
         request.writeBytes("Content-Disposition: form-data; name=\"" +
                 fieldName + "\";filename=\"" +
                 fileName + "\"" + this.crlf);
         request.writeBytes(this.crlf);
-//        byte[] bytes = Files.readAllBytes(uploadFile.toPath());
         byte[] bytes = FileUtils.readFileToByteArray(uploadFile);
+//        byte[] bytes = Files.readAllBytes(uploadFile.toPath());
+        request.write(bytes);
+    }
+
+    public void addFilePart(String fieldName, File uploadFile)
+            throws IOException {
+        String fileName = "";
+        if (fieldName == null || "".equals(fieldName)) {
+            fileName = uploadFile.getName();
+        }
+        request.writeBytes(this.twoHyphens + this.boundary + this.crlf);
+        request.writeBytes("Content-Disposition: form-data; name=\"" +
+                fieldName + "\";filename=\"" +
+                fileName + "\"" + this.crlf);
+        request.writeBytes(this.crlf);
+        byte[] bytes = FileUtils.readFileToByteArray(uploadFile);
+//        byte[] bytes = Files.readAllBytes(uploadFile.toPath());
         request.write(bytes);
     }
 
@@ -86,29 +153,39 @@
      */
     public String finish() throws IOException {
         String response = "";
+
         request.writeBytes(this.crlf);
         request.writeBytes(this.twoHyphens + this.boundary +
                 this.twoHyphens + this.crlf);
+
         request.flush();
         request.close();
+
         // checks server's status code first
         int status = httpConn.getResponseCode();
-        if (status == HttpURLConnection.HTTP_OK || status == HttpURLConnection.HTTP_CREATED) {
+//        System.out.println("MultipartUtilityV2.finish status="+status);
+        if (status == HttpURLConnection.HTTP_OK || 1 == 1) {
             InputStream responseStream = new
                     BufferedInputStream(httpConn.getInputStream());
+
             BufferedReader responseStreamReader =
                     new BufferedReader(new InputStreamReader(responseStream));
+
             String line = "";
             StringBuilder stringBuilder = new StringBuilder();
+
             while ((line = responseStreamReader.readLine()) != null) {
                 stringBuilder.append(line).append("\n");
             }
             responseStreamReader.close();
+
             response = stringBuilder.toString();
             httpConn.disconnect();
         } else {
             throw new IOException("Server returned non-OK status: " + status);
         }
+
         return response;
     }
-}
+
+}
\ No newline at end of file

--
Gitblit v1.8.0