Получить размер файла, запрошенного через ajax

Для тех, кто нашел это у Google, у меня возникла аналогичная проблема, пытаясь взаимодействовать с сервером .NET SOAP с PHP, когда метод ASP работал нормально.

Я использовал сниффер пакетов, чтобы видеть что именно посылал клиент ASP, и заметил, что он включил куки после первоначального запроса на аутентификацию. Поэтому я включил файлы cookie в моем cURL, и он работал нормально.

$cookiePath = tempnam('/tmp', 'cookie');
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiePath);
13
задан Peter 27 September 2009 в 19:52
поделиться

3 ответа

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

Этот тип запроса используется для получения метаинформации об URL-адресе, подразумеваемом запросом, без передачи какого-либо его содержимого в ответ.

var xhr = $.ajax({
  type: "HEAD",
  url: "path/to/file.ext",
  success: function(msg){
    alert(xhr.getResponseHeader('Content-Length') + ' bytes');
  }
});
40
ответ дан 1 December 2019 в 18:06
поделиться

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

3
ответ дан 1 December 2019 в 18:06
поделиться
var XHRObj = $.ajax({
    type:'HEAD',
    url:'/',
    success:function(data) {
        console.log( XHRObj.getResponseHeader('Content-Length') )
    }
})

Вы в основном выполняете HTTP-запрос HEAD и запрашиваете Content-Length, который возвращает X байтов.

0
ответ дан 1 December 2019 в 18:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: