Найти размер файла за ссылкой для скачивания с помощью jQuery - PullRequest
27 голосов
/ 17 сентября 2009

Мне было интересно, есть ли способ использовать jQuery для определения размера файла PDF, на который я ссылаюсь на веб-страницу.

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

Приветствия заранее.

Ответы [ 5 ]

47 голосов
/ 17 сентября 2009

Я чувствую, что это слишком много для работы на стороне клиента, но я не знаю деталей вашего приложения, поэтому предположим, что вам придется делать это с помощью jQuery ... вы можете сделать запрос HEAD и посмотреть заголовок Content-Length. Ранее я рекомендовал плагин jqHead, но после того, как я попытался его использовать, я обнаружил, что он сломан.

Вот рабочий пример, который не зависит от каких-либо дополнительных плагинов: http://host.masto.com/~chris/so/jqhead.html

Мясо это очень просто:

  var request;
  request = $.ajax({
    type: "HEAD",
    url: $("#url").val(),
    success: function () {
      alert("Size is " + request.getResponseHeader("Content-Length"));
    }
  });
12 голосов
/ 13 января 2011

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

Эта идея помогает ограничить размер файла перед загрузкой больших файлов на сервер.

<input type="file" id="loadfile" />
<input type="button" value="find size" onclick="findSize()" />
<script type="text/javascript">
    function findSize() {
        var fileInput = $("#loadfile")[0];
        alert(fileInput.files[0].size); // Size returned in bytes.
    }    
</script>
0 голосов
/ 20 октября 2012

В ответе выше Chrome 21 и Safari 6 не имели элемента fileSize, но имеют размер. Использование:

fileInput.files [0] .size

0 голосов
/ 17 сентября 2009

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

0 голосов
/ 17 сентября 2009

Если вы заранее знаете размер файла, вы можете указать его в атрибуте заголовка ссылки на скачивание. Вы также можете использовать jQuery для отображения собственного всплывающего окна.

В противном случае невозможно получить только размер файла (длина содержимого) URL-адреса без фактической загрузки всего содержимого AFAIK.

...