|
|
|
| Народ, пож подскажите, почитал сообщения на форуме, и насколько я понял, когда загружаешь файл на сервер то его желательно переименовывать например имя = первичный ключ. А вот как сделать чтобы потом, когда пользователь обратно загружет файл он имел имя не первичного ключа, а то, которое было на пользовательской машине. При условии, конечно, что старое имя в базе сохраняется... И вообще можно ли так сделать. | |
|
|
|
|
|
|
|
для: chpocks
(24.08.2006 в 07:07)
| | Ну может и можно создавая копию оригинала с изменением названия которую и отдаём..
Только тазем называть файлы с первичными ключами? | |
|
|
|
|
|
|
|
для: valenok
(24.08.2006 в 09:39)
| | Затем, чтобы небыло 2-х разных файлов с одинаковым именем... | |
|
|
|
|
|
|
|
для: chpocks
(24.08.2006 в 09:53)
| | ?
Не надо загружать файлы с название f779xp.exe
а надо winrar.3.1.rus.exe
Тогда когда ты попробуешь загрузить его повторно, тебе уже скажут что такой файл есть ну или во всяком случае экономия места.. | |
|
|
|
|
|
|
|
для: valenok
(24.08.2006 в 09:56)
| | Согласен, но это создает больше неудобств пользователю... | |
|
|
|
|
|
|
|
для: chpocks
(24.08.2006 в 10:19)
| | Ну можно класть рядом в директорию с загруженным файлом, файл описание файла (сорри за тавтологию)
Например загружается файл с названием pussygirls.jpg
После загрузки файл переименовывается например в
<?$new_fname = date("U").".jpg";?>
|
И записывается в нужный каталог на сервере.
А рядом в тот же каталог гладётся файл
<?$desc_fname = date("U").".info";?>
|
куда можно записать что угодно, начиная от названия файла, заканчивая данными о загрузившем.
<?
$handle = fopen($desc_fname,"w+");
fwrite($handle,"filename|pussygirls.jpg\n");
fwrite($handle,"author|kolyan\n");
// .. и т.д.
fclose($handle);
?>
|
| |
|
|
|
|
|
|
|
для: Axxil
(24.08.2006 в 10:27)
| | Это все понятно, с таким же успехом можно и в базе хранить старое и новое имя файла. Тогда и возникает вопрос о том, как при downloade новое имя подменить на старое... | |
|
|
|
|
|
|
|
для: chpocks
(24.08.2006 в 10:33)
| | Тогда надо делать промежуточную страницу.
Сразу убиваеются все зайцы.
Т.е. чел жмёт на ссылку загрузить файл идёт переход на страницу загрузки, где происходит обновление счётчика загрузок файла, подмена id файла на его имя и т.д. На странице идёт надпись что мол через 10 секунд начнётся скачивание файла, если этого не произошло жми на эту ссылку.
Типа как здесь сделано
http://www.softtime.ru/info/downloads.php | |
|
|
|
|
|
|
|
для: Axxil
(24.08.2006 в 11:07)
| | Axxil, извини, че то до меня не доходит... То что промежуточная страница нужна - это понятно, а вот где непосредственно подменять имена или файл переименовывать???
Не мог бы ты поподробнее описать алгоритм... | |
|
|
|
|
|
|
|
для: chpocks
(24.08.2006 в 11:23)
| | header("Content-type: application/octet-stream ; name="старое имя");
readfile("реальное место хранения"); | |
|
|
|
|
|
|
|
для: Trianon
(24.08.2006 в 11:31)
| | А где это писать надо??? Как я понимаю на промежуточной странице... Т.е. пользователь нажимает на 1-ой странице ссылку, которая загружает промежуточную страницу, в свою очередь в которой, например сверху написано
<?php
header("Content-type: application/octet-stream ; name="старое имя");
readfile("реальное место хранения");
.......
.......
?>
Верно, или я что-то не правильно понял? | |
|
|
|
|
|
|
|
для: chpocks
(24.08.2006 в 12:26)
| | да | |
|
|
|
|
|
|
|
для: chpocks
(24.08.2006 в 11:23)
| | Мда.
У меня фигня получилась.
Лучше через заголовки, как trianon предложил | |
|
|
|