[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка и переименование файла
Svetlaya
Всем здравствуйте.
Посоветуйте пожалуйста как быть.

Вот допустим есть у меня функция сохранения файлов с расширением pdf. Сохраняются они в определенную папку, а также информация заносится в базу данных, а именно заносится главным образом имя, а имя у меня генерируется функцией date("YmdHis"). И теперь я хочу чтобы пользователь смог скачать эти файлы, но согласитесь неудобно когда название файла состоит из 14 цифр не несущих для пользователя никакой продуктивной информации, гораздо приятнее было бы если бы он назывался 55_2011.pdf, тут сразу было бы понятно что этот файл - номер газеты 55 от 2011 года. При чем и год и номер в базе данных тоже есть. Посоветуйте пожалуйста как мне все это свершить.

Вот функция загрузки файла

function upload_pdf($_FILES,$fileDir,$maxsize = 3000){
@mkdir($fileDir, 0777);
if($_FILES['PDF']['name'] !=''){
//Проверяем размер файла
if($_FILES['PDF']['size'] != 0 AND $_FILES['PDF']['size']<=($maxsize*3000)) {
//Проверяем расширение файла

$ext=array(".pdf");
if(in_array(strrchr($_FILES['PDF']['name'],"."),$ext)){
//Проверяем загрузился ли файл на сервер
if(is_uploaded_file($_FILES['PDF']['tmp_name'])) {
//Перемещаем загруженный файл в необходимую папку $url
if(move_uploaded_file($_FILES['PDF']['tmp_name'], $fileDir."/".date("YmdHis").'.pdf')) {
return TRUE;

} else { return FALSE;}
}
else { return FALSE;}
}
else { return FALSE;}
}
else { return FALSE;}

}
}


А вот как выглядит таблица

А лучше бы было чтобы файл сразу добавлялся в базу с адекватным названием, только до меня пока не доходит как это сделать.



Спустя 11 минут, 48 секунд (1.02.2011 - 21:32) alex12060 написал(а):
Вытащи из БД, и соедини массив функцией implode();


$arr = mysql_fetch_array($sql, MYSQL_NUM);

$name = implode($arr, '_');


надеюсь ты поняла о чем я)

Спустя 6 минут, 56 секунд (1.02.2011 - 21:39) Svetlaya написал(а):
Ничегошеньки не поняла sad.gif
В какой момент файл будет переименовываться? При сохранении на компьютер пользователя? Да, было бы оптимально чтобы файл именно сохранялся с именем номер_год.pdf, а на сервере бы хранился как хранится.

Спустя 13 минут, 38 секунд (1.02.2011 - 21:52) Invis1ble написал(а):
Svetlaya
Цитата
сохранялся с именем номер_год.pdf, а на сервере бы хранился как хранится

где сохранялся? он ведь итак на сервере будет сохраняться.... не увязочка....

Спустя 9 минут, 19 секунд (1.02.2011 - 22:01) Invis1ble написал(а):
Svetlaya
Если ты о сохранении файла на машине юзера, то имя сохраняемого фала будет такое же, как и имя файла на сервере.
Цитата
А лучше бы было чтобы файл сразу добавлялся в базу с адекватным названием

ну так и надо делать.
if(move_uploaded_file($_FILES['PDF']['tmp_name'], $fileDir."/".$number.'_'.date('Y').'.pdf')) {

А номер газеты ($number) получай например так:
$query = 'select max(`number`) from `table`';
$res = mysql_query($query) or die(mysql_error());
$number = mysql_result($res, 0) + 1;

Спустя 1 минута, 32 секунды (1.02.2011 - 22:03) Svetlaya написал(а):
Чтобы файл сохранялся на компьютер пользователя под другим названием, не под таким как он хранится на сервере.

Спустя 2 минуты, 14 секунд (1.02.2011 - 22:05) Svetlaya написал(а):
Так, хорошо, я сейчас попробую.

Спустя 19 минут, 8 секунд (1.02.2011 - 22:24) Guest написал(а):
<img height='85' src='".$row['url']."'>
я так решал подобную проблему

Спустя 22 минуты, 23 секунды (1.02.2011 - 22:47) Svetlaya написал(а):
В общем вот как я сделала (не без подсказки конечно)

$q=mysql_query("SELECT * FROM pdf_file");
while($r=mysql_fetch_array($q)){
echo '<a href=download.php?file='.$r['file_Path'].'>Югорский вестник №'.$r['file_name'].'от'.$r['year_add'].'</a>';
}


download.php

$q=mysql_query("SELECT * FROM pdf_file WHERE file_Path={$_GET['file']}");
$r=mysql_fetch_array($q);
$filename = $r['file_name'].'.pdf';
header('Content-Disposition: attachment; filename='.$filename);
readfile('../files/'.$_GET['file'].'.pdf');
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.