PDA

Просмотр полной версии : переименовка файла


dailik
16.12.2008, 18:28
люди как зделать чтобы фото при загрузке переименовывалась в только что вставленную id а тоесть например нетак как у них в компе называется "фото123.jpg" а в это 123456.jpg знаю что можно через эту функцию "mysql_insert_id" а как написать? а вот обработчик



if (isset($_FILES["photo"])) {

copy($_FILES["photo"]["tmp_name"], $uploaddir . $_FILES["photo"]["name"]); } else {echo"";}

if (isset($_FILES["photo"]))


{

$good=$_FILES["photo"]["name"];

echo "<center><img src=/fotos/$good width=120 height=120><br />
";

.:EnoT:.
16.12.2008, 18:40
типа

$id = mysql_insert_id();
rename($uploaddir.$_FILES['photo']['name'], $uploaddir.$id);

[x26]VOLAND
16.12.2008, 18:54
типа

$id = mysql_insert_id();
rename($uploaddir.$_FILES['photo']['name'], $uploaddir.$id);
Забыл .'jpg' приписать.

dailik
16.12.2008, 23:28
спасибо большое-)

dailik
16.12.2008, 23:33
а можно сделать так чтоб присваивалось типо 5646546546564.jpg или D4S5F4DSFDSF5DSF4DSF4564D6S4FSD4.jpg типо такого?

optimazer
17.12.2008, 00:08
когда генеришь новое имя файла псевдослучайным образом главное чтобы сгенерированное имя не совпало с уже существующим именем

тут ты можешь поступить следующим образом:
писать в БД инфо про файлы
а имя составлять "file".$id
где $id - идентификатор файла, который атвоинкрементится и является PK подойдет!

dailik
17.12.2008, 00:12
слушай вобщем я делаю так $by=$myrow['id']+178;



if (!empty($_FILES['foto']['tmp_name']))
{
$ext = strtolower(strrchr($_FILES['foto']['name'], "."));
$img = $by.$ext;
copy($_FILES['foto']['tmp_name'], $uploaddir.$img);
}

if (isset($_FILES["photo"]))

dailik
17.12.2008, 00:13
но он и не переименовывает вообще что тут может быть? и незагружает

rushter
17.12.2008, 00:22
а можно сделать так чтоб присваивалось типо 5646546546564.jpg или D4S5F4DSFDSF5DSF4DSF4564D6S4FSD4.jpg типо такого?
в md5 шифруй и будет такого типа e10adc3949ba59abbe56e057f20f883e ...

optimazer
17.12.2008, 01:09
нет уж md5 не надо, ибо от одинаковых аргументов одинаковый хэш.
а ему нужны уникальные имена

if($_FILES['userfile']['size'] != 0 AND $_FILES['userfile']['size']<=1000000) {
if($_FILES['userfile']['type'] == 'image/jpeg' or $_FILES['userfile']['type'] == 'image/gif' or $_FILES['userfile']['type'] == 'image/png') {
if(is_uploaded_file($_FILES['userfile']['tmp_name'])) {

$today = date("Y-m-d_H-i-s");

if ($_FILES['userfile']['type'] == 'image/jpeg') {
$ext = 'jpeg';
}
if ($_FILES['userfile']['type'] == 'image/gif') {
$ext = 'gif';
}
if ($_FILES['userfile']['type'] == 'image/png') {
$ext = 'png';
}

// блаблабла
$id = mysql_insert_id();

$new_name = "file".$id.".".$ext;

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$new_name)) {
header("Location: КУДА-НИБУДЬ");
} else {
echo "Файл не создан!";
}
}else{
echo "не подходит размер файла!";
}
}else{
echo "не подходит тип файла!";
}
}else{
echo "файл не загружен.";
}

dailik
17.12.2008, 01:30
я так понел мн надо userfile переделывать в photo ?

dailik
17.12.2008, 01:39
:(