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

时间:2014-02-13 22:58:51

标签: android

我正在尝试使用您随处可见的上传到服务器教程。就像Uploading file to server with android一样,它们都使用相同的函数和相同的开头,这是我的:

    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: Source File not exist :content://media/external/images/media/342 照片:uploadFile: Source File not exist: file:///storage/emulated/0/MyDir/blah

1 个答案:

答案 0 :(得分:3)

关于content://media/external/images/media/342,这是Uri的{​​{1}}。由于您不需要将文件上传到服务器,只需要文件的内容,因此ContentProviderInputStream上的Uri会收到file:///storage/emulated/0/MyDir/blah

关于Uri,当File指向文件时,openInputStream()构造函数不会使用URL。 file:也适用于Uri {{1}}个值,因此您可能会考虑针对这两种情况采用该路线。