Может кто-нибудь знает, как разместить массив изображений на сервере в Android?
Я запутался в запросе, в котором мне нужно отправить массив изображений на сервер.
Я гуглил это, но я не мог найти соответствующие данные, поэтому кто-нибудь может сказать мне, как я могу достичь этого?
Ранний ответ заметен.
Мой код
private void imageUpload(final ArrayList imagePath) {
SimpleMultiPartRequest smr = new SimpleMultiPartRequest(
Request.Method.POST, BASE_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d( "Response", response );
try {
JSONObject jObj = new JSONObject( response );
String message = jObj.getString( "message" );
System.out.println( "Done" );
Toast.makeText( getApplicationContext(), message, Toast.LENGTH_LONG ).show();
} catch (JSONException e) {
// JSON error
e.printStackTrace();
Toast.makeText( getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG ).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
for (int i = 0; i<imagePath.size();i++){
String ab = imagePath.get( i ).toString();
System.out.println("Images is find path "+ab);
smr.addFile(""+i,imagePath.get(i).toString());
}
MyApplication.getInstance().addToRequestQueue(smr);
}
Спасибо
1 ответ
Я использую https://github.com/esafirm/android-image-picker эту библиотеку, чтобы получить список изображений
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.upload_btn:
openImagesList();
break;
}
}
public void openImagesList() {
ImagePicker.create(this) // Activity or Fragment
.start();
}
@Override
public void onActivityResult(int requestCode, final int resultCode, Intent data) {
if (ImagePicker.shouldHandle(requestCode, resultCode, data)) {
// Get a list of picked images
List<Image> images = ImagePicker.getImages(data);
List<File> imgFile = new ArrayList<>();
for (Image imge : images) {
imgFile.add(new File(imge.getPath()));
}
for (File f : imgFile) {
if (f.exists()) {
Log.i(TAG, "exist");
}
}
uploadToSever(imgFile);
}
super.onActivityResult(requestCode, resultCode, data);
}
Используйте https://github.com/amitshekhariitbhu/Fast-Android-Networking для запроса POST
public void uploadToSever(List<File> imgList) {
AndroidNetworking.upload("your sever url")
.addMultipartFileList("image[]", imgList)
.addMultipartParameter("key", "value")
.setPriority(Priority.HIGH)
.build()
.setUploadProgressListener(new UploadProgressListener() {
@Override
public void onProgress(long bytesUploaded, long totalBytes) {
// do anything with progress
}
})
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
// do anything with response
}
@Override
public void onError(ANError error) {
// handle error
}
});
}