Я пытаюсь использовать php для отправки переменных на другой php на удаленном сервере и в файле на удаленном сервере. Я хочу прочитать файл и принудительно загрузить его. Файл на удаленном сервере не находится в общей папке, поэтому мне нужно сначала вызвать файл, чтобы он аутентифицировался и получил защищенный файл.PHP - Использование CURL для аутентификации и загрузки удаленного файла
Все работает, но я не получаю никакого файла.
На удаленном PHP я использую стандарты readfile и заголовки для загрузки файла.
Возможно, проблема связана с установкой CURL, я использую стандартные вызовы CURL, есть ли какой-либо конкретный заголовок или настройка, которые мне нужно использовать, когда я вызываю CURL, чтобы загрузить файл?
Это CURL я использую
$request = curl_init();
curl_setopt($request, CURLOPT_URL, $postURL);
curl_setopt($request, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($request, CURLOPT_VERBOSE, 0);
curl_setopt($request, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($request, CURLOPT_POST, 1);
curl_setopt($request, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($request);
curl_close($request);
Где $ postFields содержат переменные для аутентификации и подтверждения файла на другом сервере.
На другом сервере РНР после аутентификации делает нормальная сила загрузки:
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="'.$newFileName.'"');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($path));
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Expires: 0');
readfile($path);
Спасибо!
EDIT: Привет, я считаю, что нашел проблему. Проблема заключается в том, что, когда я звоню через. $ Пост на JQuery локальный PHP-сервер, завиток прерывает вызов Ajax
$.post('local.php', $(this).serialize(), function(data){
alert(data);
}
}, "json").fail(function() {
alert('error');
});
Так что я буду иметь, чтобы понять это, как звонить через JQuery местный. php без нарушения процесса. Спасибо за помощь!
Пожалуйста, добавьте соответствующий код, который у вас уже есть (особенно инициализация завитка, даже если она не работает). Таким образом, мы сможем лучше понять, чего вы хотите достичь/где проблема. – dhh
Привет @dhh Я обновил код. Благодаря! – Kitara
@Kitara, как вы получаете переменные $ newFileName и $ path? Если вы поместите 'print_r ($ response)', то какой результат? –