PHP - как подменить имя файла для закачки?
Под файлы выделена одна таблица mysql - в ней помимо остальных полей есть id записи и filename - начальное имя файла, то есть такое, какое было при поступлении файла на сервер.
На сервере же файлы хранятся под другими именами, к примеру video1.tmp, video2.tmp ... по правилу "video".$id.".tmp"
И когда пользователь захочет скачать файл себе с сервера, такие файлы он и получит (video1.tmp, video2.tmp ... ).
ПРОБЛЕМА: как сделать так, чтобы с сервера выкачивался к примеру файл video2.tmp, а к пользователю поступил к примеру scarymovie.avi (имя хранится в бд)?
То есть как подменить имя файла при закачке пользователю?:confused:
Может есть какие то функции в стиле
copyxxx(old_name, new_name, ...)
А как делается на музык.сайтах?? Они просто берут и копируют мелодию в какую-то рандомную директорию, и потом дают ссылку скачивания из этой папки. Потом через некоторое время эта папка и файлы удаляются
Тут же свободный видеоархив.
Как вариант, конечно, пойдет - но таких вариантов много придумать можно. Смысл в том, чтобы все реализовать одним скриптом и без лишних файлов, папок и тп
а тут же придецца копии гиговых фильмецов плодить..-много места и %проца.
как вам энтот вариант: =)
Код:
<?
$file = 'old.tmp';
$ext = 'tmp';
$vid = 'avi';
$new = str_replace($ext, $vid, $file);
header("Content-Disposition: attachment; filename=$new");
header("Content-Type: application/x-force-download; name=\"$new\"");
exit(file_get_contents($file));
?>
$file = 'old.tmp';
$ext = 'tmp';
$vid = 'avi';
$new = str_replace($ext, $vid, $file);
header("Content-Disposition: attachment; filename=$new");
header("Content-Type: application/x-force-download; name=\"$new\"");
exit(file_get_contents($file));
?>
не знаю будет ли робить), на локалке для малых файло робит)))
по-моему лучше сразу файл нада было обзывать с родными расширениями..
и может стоит не на пхп реализовывать.
Да, это как раз то, что надо. Подробнее тут:
http://www.php.ru/manual/function.header.html
Всем спасибо
Тема закрыта