2012-02-28 3 views
0

나는이 quesiton이 이미 응답되었으므로, 작동하지 않는 것 같아서 매우 furstrating ... 난 그냥 원격 파일의 크기를 얻으려고하고있다. 기계적 인조 인간. ,자바에서 원격 파일의 안드로이드 크기

1)

try 
{ 
file = new File("http://50.19.156.118/feed2/storage/download/a_17/Madagascar.3gp"); 
a=(int) myFileBeingUploaded.length(); 
} 
catch (Exception j) 
{ 
} 

2)

try 
{ 
url = new URL("http://50.19.156.118/feed2/storage/download/a_17/Madagascar.3gp); 
urlConnection = (HttpURLConnection) url.openConnection(); 
a=urlConnection.getContentLength(); 
} 
catch (Exception e) 
{ 
} 

대해 getContentLength()는 항상 77!를 반환 File.length 동안 : 지금까지 내가 성공하지 않고, 다음과 같은 두 가지 방법을 시도()는 0을 반환합니다

아이디어가 있으십니까? 많은 감사

답변

1

HTTP는 하이퍼 링크 된 리소스를 통신하기위한 프로토콜입니다. 표준 HTTP를 사용하면 리소스의 크기를 확인하는 유일한 방법은 해당 리소스를 다운로드하는 것입니다. 문제를 해결하는 방법은 크기를 알려주는 전에 리소스를 원한다면 크기를 알려주는 다른 리소스를 구현하는 것입니다. 사실, 응답의 Content-Size 필드는 응답에 포함 된 데이터의 크기를 알려주지 만 리소스를 요청한 후에 만 ​​가능합니다.

portrait.jpg라는 이미지가있는 웹 서버에서 관심있는 리소스의 이름을 전달하는 PHP 스크립트 meta.php를 설정할 수 있습니다. meta.php?f=portrait.jpg. 그러면 meta.php는 파일 시스템에 f의 크기를 묻고 HTTP를 통해 그 번호를 반환합니다.