2013-07-17 1 views
1

/storage/emulated/0/Videos/someVideo.3gp에 저장되어있는 녹화 된 비디오 파일을 안드로이드에 POST HTTP 메소드를 통해 원격 서버로 전달하려고합니다. . FileBody 형식의 원격 서버에 비디오 파일을 전달하는 방법으로 this을 사용했습니다. 하지만, 결국 내가 httpClient.execute(request) 명령을 실행하려고 할 때 그냥 계속 던져 FileNotFoundException.FileNotFoundException 안드로이드의/storage/emulated/0 디렉토리에 저장된 파일에 액세스 할 때

따라서 비디오 파일을 외부로 액세스 할 수없는 이유는 내가 getExternalStorageDirectory()을 사용하여 sdcard에 저장했기 때문에 이해가 가지 않습니다. 또한 매니페스트 파일에 쓰기 권한을 추가했습니다.

P. 이 문제를 해결하기 위해 Nexus 7을 사용하고 있습니다. 제발 도와주세요 ..

미리 감사드립니다!

답변

1

httpClient.execute(request)을 실행하기 전에 파일의 존재를 확인하고 있습니까? 당신은 다음과 같습니다 질문에서 참조 된

:

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

편집 :
가 제대로 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()); 
} 
+1

지금 수표를 추가했습니다. 파일이 없습니다. 그러나 오류의 원인을 알지 못합니다. 비디오 녹화가 끝난 후 의도에 따라 filePath가 반환됩니다. –

+0

업데이트 된 답변을 확인하십시오. –

+1

구현시 문제를 지적 해 주셔서 감사합니다. 이전에는 실제로 sdcard의 사용자 지정 폴더에 녹화 된 비디오를 저장하려고 했으므로 작동하지 않았습니다. 하지만 코드를 시도하고 기본 위치에 저장하면 ..! 고마워 .. –