Android照片或图库路径不是文件

Android照片或图库路径不是文件,android,Android,我正在尝试使用随处可见的上传到服务器教程。它们都使用相同的函数,具有相同的开始,这是我的: String fileName = sourceFileUri; HttpURLConnection conn = null; DataOutputStream dos = null; String lineEnd = "\r\n"; String twoHyphens = "--"; String boundary = "*****"; in

我正在尝试使用随处可见的上传到服务器教程。它们都使用相同的函数,具有相同的开始,这是我的:

    String fileName = sourceFileUri;

    HttpURLConnection conn = null;
    DataOutputStream dos = null;  
    String lineEnd = "\r\n";
    String twoHyphens = "--";
    String boundary = "*****";
    int bytesRead, bytesAvailable, bufferSize;
    byte[] buffer;
    int maxBufferSize = 1 * 1024 * 1024; 

    File sourceFile = new File(sourceFileUri); 

    if (!sourceFile.isFile()) {              
         Log.i(Utils.TAG, "uploadFile: Source File not exist: " + sourceFileUri );
         return 0;

    }
问题是,它无法识别我从图库中拍摄或选择的任何图像

画廊:
uploadFile:源文件不存在:content://media/external/images/media/342

照片:
上载文件:源文件不存在:file:///storage/emulated/0/MyDir/blah

关于
content://media/external/images/media/342
,这是
内容提供者的
Uri
。由于您不需要将文件上载到服务器,只需要文件的内容,因此可以在
Uri
中获取
InputStream


关于
file:///storage/emulated/0/MyDir/blah
,虽然
Uri
指向文件,但
文件
构造函数不接受URL<代码> OpenInPixStutter()/<代码> <代码>文件: <代码> URI 值,因此您可以考虑只针对这两种情况走这条路线。

< P> > <代码> >content://media/external/images/media/342
,这是
内容提供者的
Uri
。由于您不需要将文件上载到服务器,只需要文件的内容,因此可以在
Uri
中获取
InputStream


关于
file:///storage/emulated/0/MyDir/blah
,虽然
Uri
指向文件,但
文件
构造函数不接受URL<代码> OpenInPixStutter()/<代码> <代码>文件: <代码> URI 值,因此您可以考虑只针对这两种情况走这条路线。

< P> > <代码> >content://media/external/images/media/342
,这是
内容提供者的
Uri
。由于您不需要将文件上载到服务器,只需要文件的内容,因此可以在
Uri
中获取
InputStream


关于
file:///storage/emulated/0/MyDir/blah
,虽然
Uri
指向文件,但
文件
构造函数不接受URL<代码> OpenInPixStutter()/<代码> <代码>文件: <代码> URI 值,因此您可以考虑只针对这两种情况走这条路线。

< P> > <代码> >content://media/external/images/media/342
,这是
内容提供者的
Uri
。由于您不需要将文件上载到服务器,只需要文件的内容,因此可以在
Uri
中获取
InputStream


关于
file:///storage/emulated/0/MyDir/blah
,虽然
Uri
指向文件,但
文件
构造函数不接受URL<代码> OpenInPixStutter()/<代码> <代码>文件: <代码> URI值,所以你可以考虑两种情况都走这条路线。我会仔细阅读这个链接,看看我是否能找到答案。好吧,我接受你的答案,但这对我不起作用,看看哇,多好的答案,也许有点过头了。我会仔细阅读这个链接,看看我是否能找到答案。好吧,我接受你的答案,但这对我不起作用,看看哇,多好的答案,也许有点过头了。我会仔细阅读这个链接,看看我是否能找到答案。好吧,我接受你的答案,但这对我不起作用,看看哇,多好的答案,也许有点过头了。我会仔细阅读这个链接,看看我是否能找到答案。好的,我接受你的答案,但这对我不起作用,明白吗