通过翻新将图像顺序上传到REST API

rakesh kashyap

我正在寻找一种实现策略,以按顺序将多个图像上传到服务器。我正在使用来自http://uploads.im的API上传图片。不允许在一个多部分POST请求中选择多个图像。因此,我必须顺序上传图像。

我有一个如下所示的界面。 在此处输入图片说明

用户将“点击”多张照片,并且必须将其上传到http://uploads.im一旦我从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方法?基于此,我可以使用相机的缩略图设置imageview。

2)我还将相机返回的uri添加到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)我非常确定上述策略不可行。请帮助我如何实现这一点。

亚力山大

1)在上面的代码中,可以知道哪个视图称为onActivityResult方法?基于此,我可以使用相机的缩略图设置imageview。

没有标准的方法可以知道是哪View台相机启动的Intent如果您确实需要了解它,可以创建局部变量:

private ImageView lastClickedView;

然后onClickPhotoFrame这样做:

public void onClickPhotoFrame(View view){
    lastClickedView = (ImageView) view;
    // Start CameraActivity
    Intent startCustomCameraIntent = new Intent(this, CameraActivity.class);
    startActivityForResult(startCustomCameraIntent, REQUEST_CAMERA);
}

onActivityResult这种情况下的添加处理中:

@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(lastClickedView);
    }
}

2)我还将相机返回的uri添加到arraylist,可稍后用于循环和上传图像。请让我知道这种方法是否可以。

我认为您的方法还可以。但是我看到了另一个答案:使用RxJava依次调用相同的改造方法以获得结果

据我了解,您想使用RxJava做到这一点。

因此,这是一种可能的方法(从您的答案中复制并稍作更改):

Observable.from(imageStorageList)
          .flatMap(uri -> new ImageUploadHelper().uploadImage(new File(uri.getPath())))
           .subscribe(imageUploadResponseObservable -> {

                }, throwable -> {/*handle it here*/});

好处:

  • 实施简单

缺点:

  • 实际上,此变体不处理错误。我的意思是,在错误情况下,您需要尝试再次上传图片。

如何解决这个问题呢?

I.没有RxJava,就象在工作上那样看待。并使用android-priority-jobqueue这些作业将是持久性的,在错误情况下,它们将以指数补偿的方式重复执行。

二。实现您自己的机制,该机制将在服务器上上传图像并将其持久化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过翻新将图像顺序上传到REST API

来自分类Dev

通过REST API将图像上传到C#中的ServiceNow

来自分类Dev

使用REST API将图像上传到Twitter

来自分类Dev

如何通过ActiveResource / REST API将文件上传到Redmine?

来自分类Dev

将图像从React上传到Laravel API

来自分类Dev

如何通过API将多个图像上传到Facebook中的一篇文章

来自分类Dev

将图像从WP7上传到Web Api

来自分类Dev

如何使用 JVM API 自动将图像上传到 commercetools

来自分类Dev

使用 Java API 将图像上传到 Cloudinary

来自分类Dev

如何使用OneDrive REST API将文件上传到OneDrive?

来自分类Dev

使用R将CSV文件上传到REST API

来自分类Dev

使用REST API将文件上传到Firebase存储

来自分类Dev

使用R将CSV文件上传到REST API

来自分类Dev

iOS使用REST API将图片上传到OneDrive

来自分类Dev

通过Web API将文件上传到Azure文件存储

来自分类Dev

通过API将文件上传到Google云端硬盘

来自分类Dev

通过API将Cakephp 3图片上传到Cloudinary

来自分类Dev

通过Web API将文件上传到Azure文件存储

来自分类Dev

无法通过 web-api 将文件上传到 slack

来自分类Dev

我已成功创建容器,但无法使用Rest API将图像/ pdf上传到我的Blob容器

来自分类Dev

如何将参数同时上传和图像上传到One Web API?

来自分类Dev

使用多图像选择器将多张图像上传到 API

来自分类Dev

使用api密钥通过Oauth将YouTube视频上传到Api

来自分类Dev

将带有loopj android的图像上传到基于苗条框架的REST api?

来自分类Dev

将文档上传到Web API

来自分类Dev

Java将文件上传到api端点

来自分类Dev

将文件上传到Message Bird API

来自分类Dev

如何将文件上传到API

来自分类Dev

将图像从android Api 23及更高版本上传到服务器

Related 相关文章

热门标签

归档