При загрузке файла: Curl возвращает «Пустой ответ с сервера» только в Linux, но в Windows - PullRequest
0 голосов
/ 17 мая 2011

когда я загружаю файл на хостинг Mediafire с помощью CURL, я получаю «Пустой ответ с сервера» в Ubuntu, CentOs но с тем же кодом, я могу загрузить этот файл в Windows. Чем Linux отличается от Windows? Как я могу решить этот вопрос?

Ответы [ 3 ]

1 голос
/ 28 марта 2019

Я столкнулся с этой проблемой и, наконец, обнаружил, что она вызвана стратегией брандмауэра офисной сети;

Я скомпилировал различные версии Curl и OpenSSL, но это всегда машина окна, которую можно использовать нормально, идва устройства в среде Linux не могут загружать файлы, а JSON и загружаемые файлы работают нормально;наконец-то обнаружил, что это офис Политика брандмауэра в сети приводит к тому, что мой оконный компьютер прошел сетевую аутентификацию и обладает высокими полномочиями.Однако два устройства Linux имеют ограниченные сетевые разрешения, не могут загружать файлы, но могут использовать JSON и загружать файлы.

Поскольку это тестовая среда, LINUX успешно загружает файлы через сопоставление портов TCP в окне;

0 голосов
/ 17 мая 2011

Использовать ReturnTransfer до CURL_FILE

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FILE, $fp); 

http://www.php.net/manual/en/function.curl-setopt.php#99082

Не знаю, почему я использую RETURNTRANSFER после CURLOPT_FILE, и он работает в Windows O_O даже в Linux я использую то же, что и Windows, я могу загружать на многие хостинги, кроме Mediafire. очень странно> <</p>

0 голосов
/ 17 мая 2011

Попробуйте изменить пользовательский агент, чтобы увидеть, если это имеет значение.Например:

curl --user-agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...