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

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 15 июля 2019 в 19:33
Здравствуйте друзья, подскажите пожалуйста, ниже в php коде выводится ссылка на скачивание ее нажимаешь и тогда идет загрузка файла, а как сделать так, когда открываешь страницу без клика сразу пошла загрузка?

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


Здравствуйте друзья, подскажите пожалуйста, ниже в php коде выводится ссылка на скачивание ее нажимаешь и тогда идет загрузка файла, а как сделать так, когда открываешь страницу без клика сразу пошла загрузка?

maximal

Необходимо чтобы сначала показывалась страница с кнопкой скачать? И потом происходило скачивание?
#3 15 июля 2019 в 19:42



Здравствуйте друзья, подскажите пожалуйста, ниже в php коде выводится ссылка на скачивание ее нажимаешь и тогда идет загрузка файла, а как сделать так, когда открываешь страницу без клика сразу пошла загрузка?

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

maximal

Необходимо чтобы сначала показывалась страница с кнопкой скачать? И потом происходило скачивание?

mr.KEVASC

нужно чтобы сразу начиналась загрузка файла, без ссылок и кнопок
#4 15 июля 2019 в 19:46
  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/zS1HP_YluYvW4";
  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. header('location: '.$result["response"]["href"]);
  21. }
  22. else
  23. {
  24. echo "error";
  25. }
Пробуйте
#5 15 июля 2019 в 19:50


  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/zS1HP_YluYvW4";
  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. header('location: '.$result["response"]["href"]);
  21. }
  22. else
  23. {
  24. echo "error";
  25. }
Пробуйте

mr.KEVASC

к сожалению не работает я уже так пробовал, еще так пытался идет чтения файла в браузере, а закачка не проходит

  1.  
  2. function get_stat( $url, $headers )
  3. {
  4. $handle = curl_init();
  5. curl_setopt( $handle, CURLOPT_URL, $url );
  6. curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers );
  7. curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, false );
  8. curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, false );
  9. curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true );
  10. $response = curl_exec( $handle );
  11. $code = curl_getinfo( $handle, CURLINFO_HTTP_CODE );
  12. return array( "code" => $code, "response" => $response );
  13. }
  14.  
  15. $url_yandex_disk = "https://yadi.sk/i/zS1HP_YluYvW4";
  16.  
  17. $result = get_stat( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url_yandex_disk ), array() );
  18. if( $result["code"] == 200 )
  19. {
  20. $result["response"] = json_decode( $result["response"], true );
  21. //echo '<a href="' . $result["response"]["href"] . '">Скачать</a>';
  22.  
  23. /*Добавляем HTTP заголовки, чтобы браузер понял, что это отдельный файл и его нужно скачать*/
  24. header("Content-Type: video/mp4");
  25. header('Content-Disposition: attachment; filename=' . basename($result["response"]["href"]));
  26. header('Content-Transfer-Encoding: binary');
  27. header('Expires: 0');
  28. header('Content-Length: ' . filesize($result["response"]["href"]));
  29.  
  30. echo file_get_contents($result["response"]["href"]);
  31.  
  32. }
  33. else
  34. {
  35. echo "error";
  36. }
  37.  
#6 15 июля 2019 в 20:09
maximal,
Допишите вашей ссылке какой-нибудь класс или id и эмулируйте клик яваскриптом.
  1. echo '<a href="' . $result["response"]["href"] . '" id = "download" >Скачать</a>';
А в конец файла, после ?>
  1.  
  2. <script>$(document).ready(function() {
  3. $("#download").click();
  4. });
  5. </script>
#7 15 июля 2019 в 20:19
Прошу прощения делал много запросов к файлу))) поставили временный запрет) Сейчас кину скрипт
#8 15 июля 2019 в 20:19
  1.  
  2. <script>
  3. var link = document.createElement('a');
  4. link.setAttribute('href','<?php echo $result["response"]["href"];?>');
  5. link.setAttribute('download','тут_название_файла.ext');
  6. link.click();
  7. </script>
  8.  
#9 15 июля 2019 в 20:20
  1.  
  2. function get_stat($url){
  3. $info = false;
  4. $ch = curl_init();
  5. curl_setopt( $ch, CURLOPT_URL, $url );
  6. curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
  7. curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
  8. curl_exec($ch);
  9. $response=ob_get_contents();
  10. if (!curl_errno($ch)) {
  11. $info = curl_getinfo($ch);
  12. }
  13. curl_close($ch);
  14. return array( "info" => $info, "response" => $response );
  15. }
  16.  
  17. $url_yandex_disk = "https://yadi.sk/i/zS1HP_YluYvW4";
  18. $url = "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=".$url_yandex_disk;
  19.  
  20. $result = get_stat($url);
  21.  
  22. if ( (!empty($result['info'])) && ($result['info']["http_code"] == 200) ){
  23. $result["response"] = json_decode( $result["response"], true );
  24. header('location: '.$result["response"]['href']);
  25. } else {
  26. echo "error";
  27. }
  28.  
Прошу)
#10 15 июля 2019 в 20:23


  1.  
  2.  
  3. var link = document.createElement('a');
  4. link.setAttribute('href','' . $result["response"]["href"] . '');
  5. link.setAttribute('download','тут_название_файла.ext');
  6. link.click();
  7.  
  8.  

Loadырь

Тут можно без костылей обойтись) и сделать прямую скачку
#11 15 июля 2019 в 20:27



  1.  
  2.  
  3. var link = document.createElement('a');
  4. link.setAttribute('href','' . $result["response"]["href"] . '');
  5. link.setAttribute('download','тут_название_файла.ext');
  6. link.click();
  7.  
  8.  

Loadырь

Тут можно без костылей обойтись) и сделать прямую скачку

mr.KEVASC

у меня не один вариант не хочет работать, может что не так делаю, кто может глянуть?
сайт: vfb79030.beget.tech/
сервер: vfb79030.beget.tech
доступ по FTP: vfb79030_ftp
пароль: p9%vaflD
#12 15 июля 2019 в 20:28




  1.  
  2.  
  3. var link = document.createElement('a');
  4. link.setAttribute('href','' . $result["response"]["href"] . '');
  5. link.setAttribute('download','тут_название_файла.ext');
  6. link.click();
  7.  
  8.  

Loadырь

Тут можно без костылей обойтись) и сделать прямую скачку

mr.KEVASC

у меня не один вариант не хочет работать, может что не так делаю, кто может глянуть?
сайт: vfb79030.beget.tech/
сервер: vfb79030.beget.tech
доступ по FTP: vfb79030_ftp
пароль: p9%vaflD

maximal

я же скинул, это 100% работает

  1. function get_stat($url){
  2. $info = false;
  3. $ch = curl_init();
  4. curl_setopt( $ch, CURLOPT_URL, $url );
  5. curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
  6. curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false );
  7. curl_exec($ch);
  8. $response=ob_get_contents();
  9. if (!curl_errno($ch)) {
  10. $info = curl_getinfo($ch);
  11. }
  12. curl_close($ch);
  13. return array( "info" => $info, "response" => $response );
  14. }
  15.  
  16. $url_yandex_disk = "https://yadi.sk/i/zS1HP_YluYvW4";
  17. $url = "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=".$url_yandex_disk;
  18.  
  19. $result = get_stat($url);
  20.  
  21. if ( (!empty($result['info'])) && ($result['info']["http_code"] == 200) ){
  22. $result["response"] = json_decode( $result["response"], true );
  23. header('location: '.$result["response"]['href']);
  24. } else {
  25. echo "error";
  26. }
#13 15 июля 2019 в 20:29
Я свой вариант немного подредактировал, так как редактор кода, тут немного слабоват laugh
#14 15 июля 2019 в 20:31
curl включен в хостинге?
#15 15 июля 2019 в 20:38


curl включен в хостинге?

mr.KEVASC

не могу знать) как проверить?
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.