Ich habe Probleme beim Senden eines base64-kodierten Bildes mit einer Put-Volley-Anfrage an meinen Server unter php/slim.Base64-kodiertes Bild wird beim Hochladen von Android auf Server abgeschnitten
Wenn ich die Daten vor dem Senden ausgibt sieht es gut aus, aber sobald ich es auf meinem Server bekomme, sind die Daten beschädigt/geschnitten.
Mein Android-Code für das Bild zu senden wie folgt aussieht:
private void updateImage(Bitmap myImage) {
String tag_string_req = "req_updateimage";
String updateUrl = String.format(API_DOMAIN + AppConfig.URL_UPDATE_IMAGE);
StringRequest strReq = new StringRequest(Request.Method.PUT, updateUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
//do some stuff
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error: " + error.getMessage());
}
}){
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/json; charset=UTF-8");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
myImage.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
String base64Image = Base64.encodeToString(byteArray, Base64.DEFAULT);
params.put("image", base64Image);
System.out.println(params);
return params;
}
};
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
Auf meinem Server habe ich eine Funktion wie:
$app->put('/image', function() use ($app){
$image = $app->request->put('image');
$response['error'] = false;
$response['image'] = $image;
echoResponse(200, $response);
});
Die Ausgabe in meiner android-Funktion aussieht wie ein Korrektes Base64-kodiertes Bild. Auf meinem Server gibt es nur etwa 30% des gesamten Bildes. Kannst du mir helfen? Wo ist mein Käfer? Was ist falsch?
Vielen Dank im Voraus,
RIPR
Vergrößern Sie die maximale Datengröße von php.ini –
Die Bildgröße liegt zwischen 40kb und Max 100kb. Standard Post Max Datengröße ist etwa 20M, oder? Ich denke, das wird mein Problem nicht lösen. – RiPr
Ihr Bild ändert sich in String Ich meine in Base64 so kann es zu Problemen führen. Versuchen Sie also mehrere Teile zum Hochladen von Bildern auf den Server. schnelle und effektive Art und Weise –