首页 > 解决方案 > 没有这样的文件或目录

问题描述

我正在尝试在 retrofit2 库的帮助下将图像文件发送到服务器。但有一个问题。顺便说一句,我以 MVP 模式编写代码。

我尝试以不同的方式将图像文件发送到服务器。其中之一是用于快速响应的 AndroidNetworking。但最后他们都没有工作。问题是“找不到文件”。
我从手机图库中挑选图像,然后借助 Android Image Cropper 库将该图像发送到裁剪过程。这是我的导致异常的代码:

    File file = new File(images.get(cursor).toString());

    //pass it like this
    RequestBody requestFile =
            RequestBody.create(MediaType.parse("multipart/form-data"), file);

    // MultipartBody.Part is used to send also the actual file name
    MultipartBody.Part body =
            MultipartBody.Part.createFormData("image", file.getName(), requestFile);

    mInteractor.onImageUploadRequest(
            body,
            SharedPreferencesManager.getStringData(mView.getContext(), Constants.TOKEN_KEY),
            new ImageCallback()
    );

问题是:

E/SharePostPresenter: file:/data/user/0/org.kitapp/cache/cropped4247134528851651259.jpg (没有那个文件或目录)

标签: javaandroidretrofit

解决方案


似乎问题很明显:

图像路径不正确。

但是,如果您使用的是 Image Cropper 库,那么您应该有Uri裁剪的图像,因此请尝试以下操作:File file = new File(uri.getPath());

请注意,这getPath()是访问路径的正确方法,Uri而不是使用toString()


推荐阅读