Я создаю приложение, которое позволит пользователям загружать некоторые файлы в формате PDF, но эти файлы хранятся на другом сервере, который защищен паролем, пароль известен. Каков наилучший способ передать эти файлы пользователю.
MyAppIP/applicationfiles.php FilesIP/PDF-Files/file1.pdf <-- this is password protected, but I know the pass.
Я думал о сохранении файлов на моем собственном сервере, так как они имеют максимальный размер 100 КБ. Затем передайте их пользователю и снова удалите локальный файл, но я не совсем понял, как получить файл с другого сервера в первую очередь.
Итак, как мне получить файлы с другого сервера в php?
Вы можете использовать CURL для загрузки файла с защищенного сервера. CURL также поддерживает многие методы авторизации. http://www.php.net/manual/en/function.curl-setopt.php
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'FilesIP/PDF-Files/file1.pdf'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, "Login:Password"); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); $file = curl_exec($ch); curl_close($ch); file_put_contents('/var/www/file.pdf', $file); // return download link to user // <a href="file.pdf">Download</a>
Если auth является основным http и вы установили curl, вы можете использовать это:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); $output = curl_exec($ch); curl_close($ch);