PHP скачать файл с удаленного сервера, который использует сценарий ASP - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь запустить свой php-скрипт для загрузки файлов с удаленного сервера. Мой скрипт работает нормально, когда удаленный URL-адрес указывает прямо на файл, например "http://example.com/files/file.pdf".

Проблема в том, что большинство файлов находятся на сервере ASP, и у меня нет URL-адреса к пути к файлу напрямую. Вместо этого на сервере ASP запущен скрипт для загрузки файла. Эти URL-адреса таковы: "http://example.com/files/GetFile.aspx?Id=2722&Autoresolve=True".

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

Это мой код на данный момент:

$url = 'example.com/file.pdf';
$uploadfile = 'myserver.com/file.pdf';
$contents = file_get_contents($url);
$savefile = fopen($uploadfile, 'w');
fwrite($savefile, $contents);
fclose($savefile);

Кажется, я не могу найти никаких примеров в Интернете, когда целевой файл обслуживается скриптом.

Возможно ли это вообще и на что мне нужно смотреть?

1 Ответ

0 голосов
/ 19 июня 2019

Скорее всего, это означает, что вам нужно иметь сеанс cookie перед попыткой загрузки. иногда вы должны даже инициировать запрос на загрузку и получить уникальный URL-адрес для загрузки перед тем, как приступить к загрузке. и иногда вам даже нужно войти в систему, прежде чем делать фактическую загрузку.

вы можете использовать Fiddler Proxy для просмотра запроса на загрузку, сделанного вашим браузером (большинство браузеров (по крайней мере, FireFox и Chrome) затрудняют просмотр запросов на загрузку файлов, следовательно, для Fiddler необходим прокси, даже со встроенным в средствах разработки) ищите идентификаторы сеансов cookie или токены уникального вида, иногда они находятся в файлах cookie (например, PHPSESSID), иногда в URL (например, /getFile.asp?id=123&token=qawsedrfgvbhnjm), а иногда в Заголовок HTTP (например, X-download-token: awsxdcfgbhn)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...