Intereting Posts
PHP regex заменяет пустое пространство на & nbsp; если он соответствует одной букве как использовать SQL-соединение в PHP для выполнения запроса по двум базам данных Создание динамического меню с помощью вложенных наборов Общие таблицы Drupal, но из другой базы данных php Imagick :: levelImage использование Как выполнить WP_Query с несколькими аргументами? Как вы повторяете текущие свойства класса (не унаследованные от родительского или абстрактного класса)? Как разобрать текст и изображение из сложного xml Какой стиль кодирования вы используете для тройного оператора? Как отправить электронное письмо с вложениями из формы PHP? Как структурировать этот SQL-запрос? ORA-24408: невозможно создать уникальное имя группы серверов Совместить весь текст между двумя тегами HTML, используя регулярное выражение в PHP Возможно ли получить путь сохраненного файла cookie? Обновление цены автоматически при изменении количества на странице продукта Magento

Альтернативный способ скрыть ссылку для скачивания

В настоящее время я использую этот код, чтобы скрыть ссылку для скачивания, но это дает незавершенную загрузку для некоторых пользователей. Я не знаю, почему, но слишком много пользователей сообщают мне эту проблему. Мой текущий код:

file = "../".$realFileName; $fakeFileName= 'Upbaz.ir-'.base64_decode($_GET['ffname']); $fp = fopen($file, 'rb'); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=$fakeFileName"); header("Content-Length: " . filesize($file)); fpassthru($fp); 

Кто-нибудь знает, как скрыть ссылку на скачивание?

Этот скрипт будет обрабатывать загрузку файла и включает в себя буфер / разные типы ext (если хотите). Хороший способ скрыть ссылки – это поместить файлы в защищенный каталог и иметь ссылки, хранящиеся в базе данных. Пользователь видит ID или сеанс, привязанный к файлу, и сервер находит файл и обслуживает его.

 if ($fd = fopen ($fullPath, "r")) { $fsize = filesize($fullPath); $path_parts = pathinfo($fullPath); $ext = strtolower($path_parts["extension"]); switch ($ext) { case "txt": header("Content-type: application/txt"); // add here more headers for diff. extensions header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); // use 'attachment' to force a download break; default: header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\""); } header("Content-length: $fsize"); header("Cache-control: private"); //use this to open files directly while(!feof($fd)) { $buffer = fread($fd, 2048); echo $buffer; } } fclose ($fd); 

.htaccess для защиты каталога (у вас должен быть каталог только для этих файлов

 deny from all 

Над сценарием изменено к вашему:

 $file = "../".$realFileName; $fakeFileName= 'Upbaz.ir-'.base64_decode($_GET['ffname']); if ($fd = fopen ($file, "r")) { $fsize = filesize($file); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"$fakename\""); header("Content-length: $fsize"); header("Cache-control: private"); //use this to open files directly while(!feof($fd)) { $buffer = fread($fd, 2048); echo $buffer; } } fclose ($fd); 

Увеличьте время выполнения скрипта

 @set_time_limit(120);