2014-02-13 52 views
0

我試圖使用上傳到服務器教程,你看到處處。像Uploading file to server with android,它們都使用具有相同的開始相同的功能,這裏是我的: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

回答

3

對於content://media/external/images/media/342,這是一個ContentProvider一個Uri。由於您不需要文件上傳到服務器,只需要文件的內容,就可以從a ContentResolver using openInputStream()獲取InputStreamUri

關於file:///storage/emulated/0/MyDir/blah,雖然Uri指向一個文件,但File構造函數不接受URL。 openInputStream()也與file:Uri一起使用,因此您可能會考慮在兩種情況下都採用該路線。

+0

哇,什麼答案,也許有點超過我的頭。我會仔細閱讀這個鏈接,看看我能否弄清楚。 – jcaruso

+0

好吧,我接受你的答案,但它不適合我,請參閱http://stackoverflow.com/questions/21781831/android-upload-of-file-to-server – jcaruso

相關問題