بیشتر به نظر میرسه تابع watermark شما متغیر رو ادیت کنه یا اینکه اسکریپت به نحوی دوبار اجرا میشه چون در غیر این صورت چنین چیزی امکان پذیر نیست !
مقدار $myfile رو ثابت بزارید و ببینید چی echo میشه
کد PHP:
$myfile = 'test.mp4';
نمایش نسخه قابل چاپ
سلام
شما همانطور که گفتم قبل از اینکه اصلا چیزی اپلود بشه
یک کوکی ست کنید یا یک سیشن
و درونش نامی که میخواید قرار بدید رو قرار بدید
زمانی که میخواد نام گذاری بشه فایل
به این شکل میشه کد شما
کد PHP:
$myfile = $_SESSION['اسم سیشن نام گذاری شده'].'.mp4';
watermark('dastorat darj watermark ' . $myfile);
echo $myfile;
بنظرم یه قسمت از کد نزاشتین
میخواید برای نام فایل اپلودی یه اسم بزاردی غیرتکرای!
بهترنی کار اینه که اول یه متقیر تعریف کنید به این صورت
بعدش اپلود کنید و اسم فایلتون رو این متقیر بزاریدکد PHP:
$file_name = time().''.rand(100,999);
اینجوری هربار که اپلود کنید یه اسم منحصربه فرد دارید
دوستانی که رندم رو پیشنهاد میکنن باید بگم rand بر اساس microtime کار میکنه:)
microtime کاملتره و بجای دوتا تابع از یه تابع استفاده میشه
دوست عزیز شمام کدی که گذاشتید احتمالا یا همه کد نیست یا پشت پرده متغیرتون داره عوض میشه میتونید از متغیر های ثابت استفاده کنید از دستورات define استفاده کنید و تو اونا ذخیرع کنین عددو تا تغییر نکنه
اینم آموزشش
http://www.w3schools.com/php/func_misc_define.asp
بله ، این اولین راهی بود که رفتم . الآن همین دو تابع که شما ریختید در یک متغییر . خب حالا $file_name رو باید بذارم نام فایل و همینطور اکو کنم که کاربر نام فایل آپلود شدش رو ببینه ، درسته؟
نتیجه یکسان نیست. یعنی اسم فایل آپلود شده با اسم فایل اکو شده برای کاربر فرق داره
فرمایش شما صحیح هست. استفاده از یک تابع مزیتش سرعت بالاتر هست که خیلی مهم نیست در اینجا
اما استفاده از دو تابع باعث میشه که خروجی لزوما unixtimestamp نباشه و مقدار کمی ( کمی ) امنیت بیشتر بشه. البته اگر بحث امنیت باشه هیچ کدوم از این توابع امنیت کاملی ندارند و تضمین منحصر به فرد بودن رشته رو نمیدند و باید از روش های پیچیده تری استفاده کنیم
درود
اگه هدفتون این هست که هر بار فایل آپلود میکنید یک نام رندوم بگیره و موقع آپلود اگه در 1 ثانیه چند کاربر در حال آپلود هستند اختلالی در نام پیش نیاد بهتره اسم اصلی فایل رو با time ترکیب کنید و بصورت md5 کد کنید
مثلاً اگه اسم فایل milad.mp4 هست از کد زیر استفاده کنید :
rename.php