Отладку сделайте. Посмотрите что у вас в $getLink получается. Мы ж не знаем какой вы get-запрос отправляете.
И новый код с курлом у вас с ошибками. Работайте лучше со старым.
kreat0r
И чтоб не париться со str_replace используйте urlencode
kreat0r
Вот этот код попробуйте. Если он работает, то вы неверно get передаёте. Если не работает, значит в readfile нужно контекст добавить (третий параметр у функции).
wilsden
Привет помогите
C youtube получилось а вот с али не могу
Код для своей обложки с youtube
<?php error_reporting(0); if ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['file'])) { $getLink = 'https://i.ytimg.com/vi/'.str_replace('.jpg', '', $_GET['file']).'/mqdefault.jpg'; header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename="" . $_GET['file'] . """); readfile($getLink); exit; }site.ru/imagefile/2gT6QTUA7po.jpg скачивается
Это пытаюсь сделать с ali
<?php error_reporting(0); if ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['file'])) { $getLink = 'https://ae01.alicdn.com/kf/'.str_replace('.jpg', '', $_GET['file']).'/.jpg'; header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename="" . $_GET['file'] . """); readfile($getLink); exit; }Не скачивает эту картинку https://ae01.alicdn.com/kf/Hb4cac8670a7a48bd891a42e55d8f7cc1N/.jpg
site.ru/imagefile/Hb4cac8670a7a48bd891a42e55d8f7cc1N/.jpg
Что не так?
lutskboy
wilsden
может реферер надо. юзер агент
Так сделал тоже не робит
<?php error_reporting(0); if ($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['file'])) { $url = getLink = 'https://ae01.alicdn.com/kf/'.str_replace('.jpg', '', $_GET['file']).'/.jpg'; function getLink($url, $browsers="Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3)") { $ch = curl_init(); curl_setopt($ch , CURLOPT_URL , $url); curl_setopt($ch, CURLOPT_REFERER, true); curl_setopt($ch , CURLOPT_USERAGENT , $browsers); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_MAXREDIRS, 10); curl_setopt($ch , CURLOPT_RETURNTRANSFER , true); curl_setopt($ch , CURLOPT_FOLLOWLOCATION , true); $getLink = curl_exec($ch); curl_close($ch); header("Content-type: image/png"); echo $getLink; } header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename="" . $_GET['file'] . """); readfile($getLink); exit; }kreat0r
Отладку сделайте. Посмотрите что у вас в $getLink получается. Мы ж не знаем какой вы get-запрос отправляете.
И новый код с курлом у вас с ошибками. Работайте лучше со старым.
kreat0r
kreat0r
Вот этот код попробуйте. Если он работает, то вы неверно get передаёте. Если не работает, значит в readfile нужно контекст добавить (третий параметр у функции).