2016-08-22 3 views
0

Я не знаю, как получить общий размер файла. это дает мне -1 всегдаКак получить загруженный размер файла в android

double totalSize = 0; 
URL url = new URL(Constants.AUDIOURL+kid+".mp3"); 
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
urlConnection.connect(); 
totalSize = (double)urlConnection.getContentLength(); 
+0

Вы получаете contentLength ?? –

+0

да, я получаю длину содержимого, но он всегда -1 – blkerai

+0

, чем вам нужно добавить setContentLength() со стороны сервера, чтобы получить здесь длину. –

ответ

4

Ниже вы найдете фрагмент кода. Он работает для вашей ситуации.

try{ 
URL uri = new URL(Constants.AUDIOURL+kid+".mp3"); 
URLConnection urlconnection = uri.openConnection(); 
urlconnection .connect(); 
String fileLengthStr = urlconnection .getHeaderField("content-length"); 
Log.d("File Size", fileLengthStr);  
} 
catch(Exception exception){ 
exception.printStackTrace(); 
} 
+0

он дает эту ошибку java.lang.NullPointerException: println нуждается в сообщении – blkerai

+0

Я получаю этот Размер файла: 957134 для URL: http://www.hdwallpapersfreedownload.com/uploads/large/cartoons/tom-and-jerry-best -друзья-free-hd-wallpaper.jpg без каких-либо ошибок. Укажите свой url. –

0

я решается этим кодом

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
urlConnection.setRequestProperty("Accept-Encoding", "identity"); 
0

Попробуйте использовать URLConnection.getContentLength, как указано выше. Если сервер не указывает длину, то вы не можете знать.

final URLConnection connection = url.openConnection(); 
    final int length = connection.getContentLength();