Поиск фактического URL / пути к файлу по его кажущемуся URL - PullRequest
0 голосов
/ 10 ноября 2010

Я пытаюсь создать копию файла, который находится на удаленном сервере, на мой сервер через некоторый php-код, используя curl .... Проблема в том, что файл находится по URL-адресу, подобному этому http://www.xyz.com/file.aspx...So когда этот URL используется / щелкается, он запрашивает загрузку файла .txt, который является именно тем файлом, который я пытаюсь создать копию .... URL явно не выдает имя файла ... Это толькопри нажатии запрашивает файл .txt ... Так есть ли способ узнать файл, на который указывает этот URL, через некоторый php-код? .. Заранее спасибо ...

-pcup

Ответы [ 3 ]

0 голосов
/ 10 ноября 2010

Если вы делаете 'curl' в командной строке, вы получаете нужный файл? Библиотека CURL в PHP должна делать то же самое ... вам не нужно знать имя файла, если вы знаете URL-адрес GET, чтобы сервер отправил вам файл.

0 голосов
/ 10 ноября 2010

URL никуда не "указывает". URL - это тот, который вы ввели.

Сервер устанавливает заголовок MIME content-disposition . Вы можете получить к нему доступ через Curl, установив параметр CURLOPT_HEADER с помощью curl_setopt().

0 голосов
/ 10 ноября 2010

Файл aspx, вероятно, выводит заголовки, которые сообщают вашему браузеру имя файла, который он собирается передать, а затем отправляют содержимое файла.Я часто делаю это с помощью PHP-кода для возврата pdf-файлов:

$filename = "/path/on/server/to/file.pdf";
header("Content-Type: application/pdf");
header("Content-Disposition: inline; filename=" . '"' . basename($filename) . '"' . ";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($filename));
set_time_limit(0);
readfile($filename);

Когда вы делаете свой запрос curl на странице aspx, проверяйте заголовки, возвращаемые сервером, чтобы определить фактическое имя файла файла, которыйвозвращается.

...