Я хочу получить уникальную ссылку для скачивания файла со ссылкой (скажем http://arymangupta.hol.es/download/file
) и через определенный промежуток времени (15 дней или 10 дней) ссылку следует изменить (скажем http://arymangupta.hol.es/**AnyRandomString**/file
).Как изменить путь на сервере автоматически через фиксированный интервал времени?
ответ
Я не дам вам полный код, но процедура довольно проста: первое, сохраните исходный путь в базе данных.
+----+-------------+----------------+---------------------+
| 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;
}
Этот процесс изменит фактический путь к файлу, который будет загружен, или его просто маршрут @Napolux? –
Путь останется прежним. Вам не нужно менять его, и я бы не стал перемещать файлы. Ссылка на скачивание изменится и истечет, если вы настроите ее правильно. – Napolux
Прежде всего вам нужно сохранить путь в базе данных, а когда вы используете, то получите от базы данных. Во-вторых, если вы хотите случайно изменить путь изменения, вы должны запустить задание cron для пути обновления в базе данных, независимо от того, что вам нужно.
Пожалуйста, напишите, что вы пробовали до сих пор. –
Вам нужно будет объяснить, почему вы хотите это сделать. Кстати, второй формат ссылок, который вы предоставили, недействителен. – Chris
Я просто хочу, чтобы путь был другим, может быть, как http: // (aything)/file. –