2016-04-01 8 views
2
hochladen

Ich benutze OKHttp, um mehrere Bilder (mehr als 10 in diesem Fall) auf den Server mit Multipartbody hochladen. Ich und mein Freund hatten Streit, ich sage, alle Bilder in einer einzigen Anfrage hochladen. Er sagt, senden Sie eine Anfrage auf einmal, sobald das vorherige Bild hochgeladen wird, laden Sie die nächste. Was ist die richtige Sache, so dass der Server schnell arbeitet und keine Zeitüberschreitung auftritt.Welches ist der beste Weg, um mehrere Bilder auf den Server in Android

+0

, wenn Sie Ich möchte alle Bilder gleichzeitig an den Server senden, dann stelle sicher, dass du es in einem Hintergrund-Thread machst. Senden Sie nur ein Bild auf einmal ist eine schlechte Idee, wenn Sie Bulk-Bilder an den Server senden, das heißt nicht alle Bilder auf einmal senden ist eine gute Praxis. es ist besser, senden Sie es in einer Gruppe von 5 oder so – Jois

+0

@Jois kk, aber können Sie mir sagen, wie vielteilige Arbeit? Werden die Bilder einzeln gesendet oder schlägt die Anfrage fehl, gibt es eine Möglichkeit, das letzte erfolgreich gesendete Bild zu erhalten? – Rookie

+0

Welche Bibliothek verwenden Sie? – Jois

Antwort

1

Sie können Base64-Format senden (String) wie unten und eine Textdatei erstellen, die alle codierten Foto als String

/** 
    * Encodes the image to Base64. 
    */ 
    private String encodeImage(String photoPath) { 

     File imagefile = new File(photoPath); 
     FileInputStream fis = null; 
     try { 
      fis = new FileInputStream(imagefile); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 

     Bitmap bm = BitmapFactory.decodeStream(fis); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     bm.compress(Bitmap.CompressFormat.JPEG, 80, baos); 
     byte[] b = baos.toByteArray(); 
     return Base64.encodeToString(b, Base64.DEFAULT); 
    } 

und verwenden MultipartUtility Datei zum Hochladen enthält:

https://github.com/cloudinary/cloudinary_android/blob/master/Cloudinary/src/com/cloudinary/MultipartUtility.java

+1

Base64 Encoding erhöht die Dateigröße um ca. 33%. Also denke ich nicht, dass es ein guter Weg ist. – Rookie

+1

dafür können Sie Gzip rit? –

+0

Welches ist besser als Datei in Multipart-Anfrage senden oder senden als codierte Zeichenfolge? – Rookie

Verwandte Themen