Размер Android удаленного файла в Java - PullRequest
0 голосов
/ 28 февраля 2012

Полагаю, на этот вопрос уже дан ответ, но, похоже, что он не работает, и он очень ускоряет ... Я просто пытаюсь получить размер удаленного файла в Android.До сих пор я безуспешно пробовал следующие два подхода:

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 Ответ

1 голос
/ 28 февраля 2012

HTTP - это не файловая система - это протокол для передачи гиперссылок на ресурсы. При использовании стандартного HTTP единственным способом определения размера ресурса является его загрузка. Чтобы решить вашу проблему, предполагая, что вы хотите, чтобы размер был выше, чем , для которого вы хотите ресурс, - это реализовать другой ресурс, который сообщит вам размер. True, поле Content-Size ответа сообщает вам размер данных, содержащихся в ответе, но только после того, как вы запросите ресурс.

например. учитывая ваш веб-сервер с изображением Portrait.jpg, вы можете настроить php-скрипт meta.php, которому вы передаете имя интересующего вас ресурса ... meta.php?f=portrait.jpg. Затем meta.php запросит у своей файловой системы размер f и вернет это число по HTTP.

...