PDA

View Full Version : سوال: تغییر نام فایل هنگام اپلود



elimiz
یک شنبه 04 تیر 1391, 16:52 عصر
سلام
چطوری میشه نام یک فایل رو هنگام اپلود تغییر داد ؟
نمیخوام فایل جدید روی فایل قبلی ذخیره بشه بلکه با نام جدید ذخیره بشه.
این کد آپلودر هست اما تغییر نام نمیده و با اسم خود فایل اپلود میکنه

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/bmp")
|| ($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 9024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>

ayub_coder
یک شنبه 04 تیر 1391, 18:17 عصر
شما چندین کار میتونی انجام بدی
کلا اسم فایل رو به صورت رندوم تولید کنی و در کد بالا به جای
"upload/" . $_FILES["file"]["name"]
قرار بدی.
یا اینکه چک کنی اگه فایل وجود داشت یه کارکتر به اول فایل اضافه کنید یا یه رشته تصادفی به اول اسم فایل اضافه کنه یا.. یا... یا...

elimiz
یک شنبه 04 تیر 1391, 19:33 عصر
خوب دوست عزیز من همه اینها رو میدونم اما بلد نیستم کد نویسی کنم.اگر امکان داره شما کد رو اضافه کنید و اینجا بزارید
ممنون

ayub_coder
یک شنبه 04 تیر 1391, 19:59 عصر
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/bmp")
|| ($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "";
echo "Type: " . $_FILES["file"]["type"] . "";
echo "Size: " . ($_FILES["file"]["size"] / 9024) . " Kb";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "";

$rnd = randomStr(8);
$filename = $rnd.$_FILES["file"]["name"];

move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" .$filename);
echo "Stored in: " . "upload/" . $filename;

}
}
else
{
echo "Invalid file";
}





function randomStr ($length = 6)
{


$str = "";

$possible = "12346789bcdfghjkmnpqrtvwxyzABCDFGHJKLMNPQRTVWXYZ_";


$maxlength = strlen($possible);


if ($length > $maxlength) {
$length = $maxlength;
}


$i = 0;


while ($i < $length) {


$char = substr($possible, mt_rand(0, $maxlength-1), 1);


if (!strstr($str, $char)) {

$str .= $char;

$i++;
}

}


return $str;

}
?>

ayub_coder
یک شنبه 04 تیر 1391, 20:01 عصر
این ناحیه از کدت عوض شد.

$rnd = randomStr(8);

$filename = $rnd.$_FILES["file"]["name"];



move_uploaded_file($_FILES["file"]["tmp_name"],

"upload/" .$filename);

echo "Stored in: " . "upload/" . $filename;

تابع randomStr هم از نامش پیداست برای تولید رشه تصادفی بکار میره. ورودیش هم تعداد کارکتر ها برای تولیده. خروجیش هم یه رشته رندوم.
اومدیم یه رشته تصادفی به اسم فایل چسبوندیم. اینطوری مطمئنیم که هیچ وقت فایل با این نام قبلا وجود نداره

elimiz
یک شنبه 04 تیر 1391, 20:25 عصر
اقا دستت درد نکنه مشکل حل شد. یک دنیا ممنون

ravand
یک شنبه 04 تیر 1391, 22:13 عصر
نام گذاری عکس با شماره ی آی دی:

move_uploaded_file($_FILES['photo']['tmp_name'], '/images/'.$user['id'].mb_substr($_FILES['photo']['name'], mb_strrpos($_FILES['photo']['name'], '.', NULL, 'utf-8'), NULL, 'utf-8'));

ravand
یک شنبه 04 تیر 1391, 22:34 عصر
فکر میکنم اگه تاریخ روز و سال رو بعلاوه ی ساعت رو هم بدیم به نام فایل خوبه باشه.نظرتون چیه؟