Здравствуйте друзья, подскажите пожалуйста, необходимо что бы php код при открытии страницы автоматом начинал загрузку файла, вот пример где в данный момент выводится ссылка на скачивание. PHP: function get_stat( $url, $headers ) { $handle = curl_init(); curl_setopt( $handle, CURLOPT_URL, $url ); curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers ); curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true ); $response = curl_exec( $handle ); $code = curl_getinfo( $handle, CURLINFO_HTTP_CODE ); return array( "code" => $code, "response" => $response ); } $url_yandex_disk = "https://yadi.sk/i/byMUqoSLiw3Ki"; $result = get_stat( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url_yandex_disk ), array() ); if( $result["code"] == 200 ) { $result["response"] = json_decode( $result["response"], true ); echo '<a href="' . $result["response"]["href"] . '">Скачать</a>'; } else { echo "error"; }
Код работает нормально, смотри там вылазит ссылка на скачивание ее нажимаешь и тогда идет загрузка, а как сделать что бы когда открываешь страницу без клика сразу пошла загрузка?
Попробуй так. PHP: function get_stat( $url, $headers ) { $handle = curl_init(); curl_setopt( $handle, CURLOPT_URL, $url ); curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers ); curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true ); $response = curl_exec( $handle ); $code = curl_getinfo( $handle, CURLINFO_HTTP_CODE ); return array( "code" => $code, "response" => $response ); } $url_yandex_disk = "https://yadi.sk/i/byMUqoSLiw3Ki"; $result = get_stat( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url_yandex_disk ), array() ); if( $result["code"] == 200 ) { $result["response"] = json_decode( $result["response"], true ); //echo '<a href="' . $result["response"]["href"] . '">Скачать</a>'; /*Добавляем HTTP заголовки, чтобы браузер понял, что это отдельный файл и его нужно скачать*/ header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . basename($result["response"]["href"])); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Content-Length: ' . filesize($result["response"]["href"])); echo file_get_contents($result["response"]["href"]); } else { echo "error"; }
попробуй строку: Код (Text): header('Content-Type: application/octet-stream'); заменить на: Код (Text): header("Content-Type: video/mp4"); Если не поможет, попробуй убрать строчки: Код (Text): header('Content-Transfer-Encoding: binary'); header('Expires: 0');
не выходит, возможно что не правильно делаю, можешь глянуть сайт: http://vfb79030.beget.tech/ Сервер: vfb79030.beget.tech доступ по FTP: vfb79030_ftp пароль: p9%vaflD