1

我正在尝试通过 POST HTTP 方法将 android 中 /storage/emulated/0/Videos/someVideo.3gp 中保存的录制视频文件传递到远程服务器。我用作为将视频文件以 FileBody 格式传递到远程服务器的一种方式。但是,最后当我尝试执行httpClient.execute(request)命令时,它只是继续抛出FileNotFoundException

所以,我不明白为什么外部世界无法访问视频文件,因为我使用getExternalStorageDirectory(). 我还为清单文件添加了写权限。

PS 我正在使用 Nexus 7 进行测试。请帮忙..

提前致谢!

4

1 回答 1

1

您是否在执行之前检查文件的存在httpClient.execute(request)

从您所关注的问题中引用:

File sourceFile = new File(sourceFileUri);
if (!sourceFile.isFile()) {
Log.e("Huzza", "Source File Does not exist");
return 0;
}

编辑:
可能是您没有正确转换来自 Uri 的路径,onActivityResult(...) method 因为我正在共享获取正确路径的代码,并且它在我的应用程序中运行良好。

String videoPath = "";
try 
{ 
 String[] filePathColumn = { MediaStore.Video.Media.DATA };
 Cursor cursor = getContentResolver().query(selectedVideoUri,
 filePathColumn, null, null, null);
 cursor.moveToFirst();
 int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
 videoPath = cursor.getString(columnIndex);
 cursor.close();
} catch (Exception e) {
 Log.e(TAG,
 "Error parsing Video path = " + e.toString());
}
于 2013-07-18T00:11:09.207 回答