Определите размер файла ссылки, используя JavaScript - PullRequest
0 голосов
/ 18 мая 2010

Хотелось бы написать скрипт для определения размера файла целевой ссылки на веб-странице.

Прямо сейчас у меня есть функция, которая находит все ссылки на PDF-файлы (т.е. href оканчивается на «.pdf») и добавляет строку «[pdf]» к innerText. Я хотел бы расширить его, чтобы я также мог добавить текст, сообщающий пользователю, что целью является большой файл (например, больше 1 МБ).

Спасибо

Ответы [ 3 ]

4 голосов
/ 18 мая 2010

Вы должны быть в состоянии сделать запрос HEAD, используя XMLHttpRequest, при условии, что файлы находятся в одном домене.

Это, однако, то, что действительно должно быть сделано на стороне сервера. Делать это с дополнительными запросами не имеет никакой пользы.

4 голосов
/ 18 мая 2010

Некоторые веб-серверы могут выдавать заголовок Content-Length в ответ на запрос HEAD. Вы можете использовать XmlHttpRequest для отправки запроса HEAD и посмотреть, что вы получите.

Вот что говорит один из моих серверов IIS о файле PDF:

HTTP/1.1 200 OK
Content-Length: 127791
Content-Type: application/pdf
...

Однако все, что не доставлено напрямую веб-сервером (например, файл, обслуживаемый PHP или ASP.net), не будет работать, если скрипт не обрабатывает запросы HEAD.

0 голосов
/ 18 мая 2010

Вы не можете сделать это, или, по крайней мере, - ни одним из практических кросс-браузерным способом.

Если вы заранее знаете размер файла, например, при создании документа со ссылками на файлы, вы можете жестко запрограммировать размеры в HTML-документе.

<a href="large_file.pdf" onclick="return confirm('Want to download a large file?')">large_file.pdf</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...