Выгрузить картинку с ali как за свою?

W
На сайте с 14.02.2016
Offline
44
158

Привет помогите
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
На сайте с 22.11.2013
Offline
171
#1
может реферер надо. юзер агент
W
На сайте с 14.02.2016
Offline
44
#2
lutskboy #:
может реферер надо. юзер агент

Так сделал тоже не робит 

<?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;
}
K0
На сайте с 16.05.2012
Offline
92
#3

Отладку сделайте. Посмотрите что у вас в $getLink получается. Мы ж не знаем какой вы get-запрос отправляете.

И новый код с курлом у вас с ошибками. Работайте лучше со старым.

K0
На сайте с 16.05.2012
Offline
92
#4
И чтоб не париться со str_replace используйте urlencode
K0
На сайте с 16.05.2012
Offline
92
#5

Вот этот код попробуйте. Если он работает, то вы неверно get передаёте. Если не работает, значит в readfile нужно контекст добавить (третий параметр у функции).

<?php
error_reporting(0);
$getLink = 'https://ae01.alicdn.com/kf/Hb4cac8670a7a48bd891a42e55d8f7cc1N/.jpg';
  
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header('Content-disposition: attachment; filename=test.jpg');
readfile($getLink);
exit;


Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий