複数のイメージをサーバーに順次アップロードする実装方法を探しています。私はhttp://uploads.imからAPIを使用して画像をアップロードしています。 複数の画像を1つのマルチパートPOSTリクエストで選択することはできません。それゆえ、私は画像を順番にアップロードしなければならない。イメージをREST APIに順次アップロードする
ユーザーは複数の写真を「クリック」し、これはhttp://uploads.imにアップロードする必要があります。アップロードされた画像のURLを使用してAPIからの応答が返ってくると、別の画像などをアップロードする必要があります。また、すべてのイメージをイメージサーバーにアップロードしたら、サーバーにURLリストを送信する必要があります。このリストには、これらの詳細が格納されています。ここで
は、私は上記のコードでは)今
@OnClick({R.id.pic_photo_0
, R.id.pic_photo_1
, R.id.pic_photo_2
, R.id.pic_photo_3
}) //Bind with butterknife
public void onClickPhotoFrame(View view)
{
// Start CameraActivity
Intent startCustomCameraIntent = new Intent(this, CameraActivity.class);
startActivityForResult(startCustomCameraIntent, REQUEST_CAMERA);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode != RESULT_OK)
{
return;
}
if (requestCode == REQUEST_CAMERA)
{
Uri photoUri = data.getData();
//based on which imageview created the camera request, load it with the above image
Picasso.with(getApplicationContext()).load(photoUri).fit().into(imageView0);
}
}
1時までやっていることであるonActivityResultメソッドを呼び出したビューを知って、それは可能ですか?それに基づいて、私はカメラからサムネイルで画像ビューを設定することができます。
2)カメラで返されたuriをarraylistに追加します。このarraylistは後でループして画像をアップロードするために使用できます。この方法が問題ないかどうか教えてください。
私は
for (int i = 0; i < imageStorageList.size(); i++)
{
Call<ImageUploadResponse> call = new ImageUploadHelper().
UploadImage(new File(imageStorageList.get(i).getPath()));
call.enqueue(new Callback<ImageUploadResponse>()
{
@Override
public void onResponse(Call<ImageUploadResponse> call, Response<ImageUploadResponse> response)
{
// do some magic here to know which image was uploaded
}
@Override
public void onFailure(Call<ImageUploadResponse> call, Throwable t)
{
}
});
}
3改造を経て以下のように画像をアップロードしています)私は上記の戦略がOKではない非常に確信しています。これを実装する方法を教えてください。
ありがとうございました。 –
私は別の質問があります。画像のアップロードが完了したら、この呼び出しから受け取ったデータを使用してoncompleted()メソッドから別のレトロフィットコールを作成できますか?もしそうでなければ、別の改造呼出しをどうやって連鎖できますか?私が見たすべての例では、フラットマップが連鎖呼び出しに使用されていることがわかります。私の場合、私はこの呼び出しを実行する方法を理解していません –
@rakeshkashyap、 'uploadImage'が' imageUploadResponse'を返すと仮定します。この場合、あなたは次に何をする必要があります。 '.flatMap(。URI - >新しいImageUploadHelper()uploadImage(新しいファイル(uri.getPath())))の地図(レスポンス - > {/ *応答にあなたがやりたいです* /}) ' – Alexander