За последние 24 часа нас посетили 22872 программиста и 1268 роботов. Сейчас ищут 812 программистов ...

Автоматическая загрузка при открытии страницы php

Тема в разделе "PHP для новичков", создана пользователем fil, 14 июл 2019.

  1. fil

    fil Новичок

    С нами с:
    14 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    Здравствуйте друзья, подскажите пожалуйста, необходимо что бы php код при открытии страницы автоматом начинал загрузку файла, вот пример где в данный момент выводится ссылка на скачивание.

    PHP:
    1. function get_stat( $url, $headers )
    2. {
    3.     $handle = curl_init();
    4.     curl_setopt( $handle, CURLOPT_URL, $url );
    5.     curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers );
    6.     curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, false );
    7.     curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, false );
    8.     curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true );
    9.     $response = curl_exec( $handle );
    10.     $code = curl_getinfo( $handle, CURLINFO_HTTP_CODE );
    11.     return array( "code" => $code, "response" => $response );
    12. }
    13.  
    14. $url_yandex_disk = "https://yadi.sk/i/byMUqoSLiw3Ki";
    15.  
    16. $result = get_stat( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url_yandex_disk ), array() );
    17. if( $result["code"] == 200 )
    18. {
    19.   $result["response"] = json_decode( $result["response"], true );
    20.   echo '<a href="' . $result["response"]["href"] . '">Скачать</a>';
    21. }
    22. else
    23. {
    24.   echo "error";
    25. }
     
  2. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    и что? не работает? какая ошибка?
     
  3. fil

    fil Новичок

    С нами с:
    14 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    Код работает нормально, смотри там вылазит ссылка на скачивание ее нажимаешь и тогда идет загрузка, а как сделать что бы когда открываешь страницу без клика сразу пошла загрузка?
     
  4. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    Попробуй так.

    PHP:
    1. function get_stat( $url, $headers )
    2. {
    3.     $handle = curl_init();
    4.     curl_setopt( $handle, CURLOPT_URL, $url );
    5.     curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers );
    6.     curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, false );
    7.     curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, false );
    8.     curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true );
    9.     $response = curl_exec( $handle );
    10.     $code = curl_getinfo( $handle, CURLINFO_HTTP_CODE );
    11.     return array( "code" => $code, "response" => $response );
    12. }
    13.  
    14. $url_yandex_disk = "https://yadi.sk/i/byMUqoSLiw3Ki";
    15.  
    16. $result = get_stat( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url_yandex_disk ), array() );
    17. if( $result["code"] == 200 )
    18. {
    19.   $result["response"] = json_decode( $result["response"], true );
    20.   //echo '<a href="' . $result["response"]["href"] . '">Скачать</a>';
    21.  
    22.   /*Добавляем HTTP заголовки, чтобы браузер понял, что это отдельный файл и его нужно скачать*/
    23.    header('Content-Type: application/octet-stream');
    24.    header('Content-Disposition: attachment; filename=' . basename($result["response"]["href"]));
    25.    header('Content-Transfer-Encoding: binary');
    26.    header('Expires: 0');
    27.    header('Content-Length: ' . filesize($result["response"]["href"]));
    28.  
    29.    echo file_get_contents($result["response"]["href"]);
    30. }
    31. else
    32. {
    33.   echo "error";
    34. }
     
  5. fil

    fil Новичок

    С нами с:
    14 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    Увы, не срабатывает)
     
  6. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    ничего не скачивается? на экран символы выводит?
    какое расширение файла?
     
  7. fil

    fil Новичок

    С нами с:
    14 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    формат .mp4 не открывается, попробовал картинку выводит символы в браузере
     

    Вложения:

  8. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    попробуй строку:
    Код (Text):
    1. header('Content-Type: application/octet-stream');
    заменить на:
    Код (Text):
    1. header("Content-Type: video/mp4");
    Если не поможет, попробуй убрать строчки:
    Код (Text):
    1. header('Content-Transfer-Encoding: binary');
    2. header('Expires: 0');
     
  9. fil

    fil Новичок

    С нами с:
    14 июл 2019
    Сообщения:
    5
    Симпатии:
    0
    не выходит, возможно что не правильно делаю, можешь глянуть сайт: http://vfb79030.beget.tech/
    Сервер: vfb79030.beget.tech
    доступ по FTP: vfb79030_ftp
    пароль: p9%vaflD