2016-05-27 2 views
1

Я хочу получить уникальную ссылку для скачивания файла со ссылкой (скажем http://arymangupta.hol.es/download/file) и через определенный промежуток времени (15 дней или 10 дней) ссылку следует изменить (скажем http://arymangupta.hol.es/**AnyRandomString**/file).Как изменить путь на сервере автоматически через фиксированный интервал времени?

+0

Пожалуйста, напишите, что вы пробовали до сих пор. –

+0

Вам нужно будет объяснить, почему вы хотите это сделать. Кстати, второй формат ссылок, который вы предоставили, недействителен. – Chris

+0

Я просто хочу, чтобы путь был другим, может быть, как http: // (aything)/file. –

ответ

1

Я не дам вам полный код, но процедура довольно проста: первое, сохраните исходный путь в базе данных.

+----+-------------+----------------+---------------------+ 
| id | token  | path_to_file | date    | 
+----+-------------+----------------+---------------------+ 
| 1 | abcdefghijk | /path/file.pdf | 2016-05-27 00:00:00 | 
+----+-------------+----------------+---------------------+ 

Тогда:

  • Создать cronjob для обновления маркеров, которые истекли
  • Создать скрипт, который дал маркер заставит людей в состоянии загрузить файл

Чтобы скрыть реальный путь к файлу, вы можете использовать функцию readfile() php.

if (file_exists('/path/file.pdf')) { 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/pdf'); 
    header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($file)); 
    readfile($file); 
    exit; 
} 
+0

Этот процесс изменит фактический путь к файлу, который будет загружен, или его просто маршрут @Napolux? –

+0

Путь останется прежним. Вам не нужно менять его, и я бы не стал перемещать файлы. Ссылка на скачивание изменится и истечет, если вы настроите ее правильно. – Napolux

1

Прежде всего вам нужно сохранить путь в базе данных, а когда вы используете, то получите от базы данных. Во-вторых, если вы хотите случайно изменить путь изменения, вы должны запустить задание cron для пути обновления в базе данных, независимо от того, что вам нужно.

Смежные вопросы