راکت
حل شده

ارسال عکس با نام تصادفی

6 پاسخ

من میخوام یک عکس که ارسال میشه اسمش تغییر کنه و اون اسم در دیتابیس برای نمایش در سایت ذخیره بشه .

ثبت پرسش جدید

پاسخ‌ها

6
.
.
@jwkwok
بهترین پاسخ

چند تا راه حل داره
2 - استفاده از زمان حال که توی بیشتر زبان های برنامه نویسی هست مثل date() توی php
1 - تو بیشتر زبان های برنامه نویسی یه تابع هست اعداد تصادفی می سازه مثل rand() توی php :
ما یه ارایه می سازیم کاراکتر های مجاز که میشه باهاش اسم فایل رو ساخت رو توش قرار می دیم
یه حلقه میزنیم و توی اون حلقه هر بار یه کاراکتر تصادفی با استفاده از ارایه و تابعی که عدد تصادفی می سازه انتخاب می کنیم (چجوری ؟
می گیم اون تابع تصادفی یه عدد مثلا بین0 تا 5 انتخاب بکنه بعد دقیقا همون بخش از ارایه رو انتخاب می کنین : تابع میده 2 ما هم دومین اندیس ارایه رو انتخاب می کنیم و با رشته ی قبلی کانکتش می کنیم )
حالا هر وقت یه اسم جدید می سازیم نگاه می کنیم اگه همچین اسمی وجود داشت درون یک فولدر خاص مراحل رو از اول می ریم تا وقتی که نام تصادفی بیرون اومده uniq باشه
مثال کامل (البته شاید خیلی clean code نباشه)

$allowedChars = ['a','b','c'];
function randomNameCreator ( array $allowedChars , string $mime, int $length){
    $randomName = '';
    for ($i  =  0 ; $i <= $length ; i++){
        lengthOfArray = count($allowedChars);
        selectedChar =$allowedChar[rand(0,lengthOfArray)];
        $randomName .= $selectedChar;
    }
    $randomName .= $mime;
    if (file_exists(ROOTPACH.$randomName)) {
        randomNameCreator($allowedChars,$mime,$length);
    }
    return $randomName;
}

randomNameCreator($allowedChars,'jpg',2);
// examole of output
// aa.jpg

randomNameCreator($allowedChars,'jpg',2);
// example of output
//aa.jpg
// exist so again
// cb.jpg
Banana Life
Banana Life
@shift.delete

شما میتونید فایلی را که دریافت میکنید را با اعدد چند رقمی به صورت رندم ذخیره کنید تا نام ها مشابه هم نباشند.

$filename = explode(".", $_FILES["file"]["name"]);
$newfilename = round(microtime(true)) . '.' . end($filename );
پرهام
پرهام
@parhamdeveloper

تخصص: توسعه‌دهنده‌ی BackEnd

@shift.delete
نمیخوام اصلا اسم فایل وجود داشته باشه .

شاید پاسخ شما همین‌جا باشد

.
.
@jwkwok

@parhamdeveloper
نظرم رو ویرایش کردم ملاحظه کنید اگه کمکتون کرد اون رو به عنوان بهترین پاسخ انتخاب کنید

پرهام
پرهام
@parhamdeveloper

تخصص: توسعه‌دهنده‌ی BackEnd

@Nima.nori
خیلی کمکم کرد ممنون .

.
.
@jwkwok

@parhamdeveloper
قابلی نداشت😘.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام