Для тех, кто нашел это у Google, у меня возникла аналогичная проблема, пытаясь взаимодействовать с сервером .NET SOAP с PHP, когда метод ASP работал нормально.
Я использовал сниффер пакетов, чтобы видеть что именно посылал клиент ASP, и заметил, что он включил куки после первоначального запроса на аутентификацию. Поэтому я включил файлы cookie в моем cURL, и он работал нормально.
$cookiePath = tempnam('/tmp', 'cookie');
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiePath);
Вы можете сделать 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');
}
});
Вы можете создать команду на стороне сервера, которая принимает путь и имя файла, открывает файл для получения длины и отправляет размер возвращается клиенту. Как вы это сделаете, будет зависеть от того, какой серверный язык вы используете. Вы ищете действия такого типа?
var XHRObj = $.ajax({
type:'HEAD',
url:'/',
success:function(data) {
console.log( XHRObj.getResponseHeader('Content-Length') )
}
})
Вы в основном выполняете HTTP-запрос HEAD и запрашиваете Content-Length, который возвращает X байтов.