-
December 8th, 2016, 06:53
#1
عضو جدید
سوال php | نام گذاری فایل آپلود شده
باسلام
واقعا دو روزه گیج شدم!!!
من ی اسکریپت واترمارک نوشتم که باید برای ذخیره سازی بهش نام فایل رو بدم، خب طبیعیه که هربار باید ی نام جدید باشه.
برای تولید نام گفتن از date(y,m,d,h,i استفاده کنم که نشد ، چون در لحظه آپلود اگر دقیقه یهو عوض شه دو فایل نیمه کاره آپ میشه.
خلاصه اومدم ساعت رو ضربدر دقیقه کردم بازم نشد. چون دو خروجی میخوام . نتیجه در پنجاه درصد مواقع اینطوری میشه
نام فایل آپلود شده 34-787-877
نام فایل اکو شده برای آپ کننده 88-766-877
گفتن از return استفاده کن که عملیات متوقف بشه ولی من نتونستم (مهم نیست که نام خروجی عدد باشه یا رشته)
لطفا اساتید کمک کنن ،
ز خیرت خیر پیش آید، بکن چندانکه بتوانی
مکافات بدی کردن، نمیگویم تو خود دانی
-
-
December 8th, 2016 06:53
# ADS
-
December 8th, 2016, 07:20
#2
عضو انجمن
پاسخ : سوال php | نام گذاری فایل آپلود شده

نوشته اصلی توسط
samanmo
باسلام
واقعا دو روزه گیج شدم!!!
من ی اسکریپت واترمارک نوشتم که باید برای ذخیره سازی بهش نام فایل رو بدم، خب طبیعیه که هربار باید ی نام جدید باشه.
برای تولید نام گفتن از date(y,m,d,h,i استفاده کنم که نشد ، چون در لحظه آپلود اگر دقیقه یهو عوض شه دو فایل نیمه کاره آپ میشه.
خلاصه اومدم ساعت رو ضربدر دقیقه کردم بازم نشد. چون دو خروجی میخوام . نتیجه در پنجاه درصد مواقع اینطوری میشه
نام فایل آپلود شده 34-787-877
نام فایل اکو شده برای آپ کننده 88-766-877
گفتن از return استفاده کن که عملیات متوقف بشه ولی من نتونستم (مهم نیست که نام خروجی عدد باشه یا رشته)
لطفا اساتید کمک کنن ،
سلام وقت بخیر
فرقی نداره اسم چی باشه ولی یونیک بودنش بهتره یونیک باشه
بهترینروش به نظر من
وقتی میخوای کد ها اجرا بشه تو دیتابیس یه انینسرت میزنی نام فایل اصلی با نام فایل خروجی ذخیره میشه
توی مرحله بعد دیگه اینسرت نمیکنی بلکه قبلی رو میخونی درصورت نیاز آپدیت میکنی آخری سری هم اسم و چیزای دیگه رو چاپ میکنی چیز زیاد سخت و پیچیده ای نیست
-
تعداد تشکر ها از omid1991 به دلیل پست مفید
-
December 8th, 2016, 13:32
#3
عضو انجمن
پاسخ : سوال php | نام گذاری فایل آپلود شده
دوست عزیز بنظر من اسمشو میتونی از تابع ماکرو تایم یا تایم استفاده کنی که عدد بزرگی بر حسب ثانیه و میکرو ثانیه میسازن ... ی مثال برات میزنم
کد PHP:
$time = microtime();
$time = time();
حالا بیا ازین متغیر هرجا ک میخوای استفاده کن عدد ثابتی هست و دیگه تغییر نمیکنه چون یبار ریختی داخل متغیر و اون لحظه رو نشون میده
-
تعداد تشکر ها از miladtnt به دلیل پست مفید
-
December 8th, 2016, 13:37
#4
عضو دائم
پاسخ : سوال php | نام گذاری فایل آپلود شده

نوشته اصلی توسط
samanmo
باسلام
واقعا دو روزه گیج شدم!!!
من ی اسکریپت واترمارک نوشتم که باید برای ذخیره سازی بهش نام فایل رو بدم، خب طبیعیه که هربار باید ی نام جدید باشه.
برای تولید نام گفتن از date(y,m,d,h,i استفاده کنم که نشد ، چون در لحظه آپلود اگر دقیقه یهو عوض شه دو فایل نیمه کاره آپ میشه.
خلاصه اومدم ساعت رو ضربدر دقیقه کردم بازم نشد. چون دو خروجی میخوام . نتیجه در پنجاه درصد مواقع اینطوری میشه
نام فایل آپلود شده 34-787-877
نام فایل اکو شده برای آپ کننده 88-766-877
گفتن از return استفاده کن که عملیات متوقف بشه ولی من نتونستم (مهم نیست که نام خروجی عدد باشه یا رشته)
لطفا اساتید کمک کنن ،
در مورد سوال شما دو مشکل هست
اول اینکه اگر دو کاربر همزمان فایل آپلود کنند هر دو یک اسم میگیرند ! چون تنها ملاک شما دقیقه بوده. بهتر است از time و عدد رندوم استفاده کنید.
دوم اینکه چرا دو تا اسم مختلف بگیرید ؟! وقتی نام فایل مشخص شد در یک متغیر یا session بزارید تا برای فایل دوم یا ارسال به کاربر نیاز به فراخوانی مجدد تابع date نداشته باشید.
کدی که اسم رو تولید و استفاده میکنید رو اگر بزارید بهتر میشه راهنمایی کرد
-
-
December 8th, 2016, 15:03
#5
عضو جدید
پاسخ : سوال php | نام گذاری فایل آپلود شده

نوشته اصلی توسط
omid1991
سلام وقت بخیر
فرقی نداره اسم چی باشه ولی یونیک بودنش بهتره یونیک باشه
بهترینروش به نظر من
وقتی میخوای کد ها اجرا بشه تو دیتابیس یه انینسرت میزنی نام فایل اصلی با نام فایل خروجی ذخیره میشه
توی مرحله بعد دیگه اینسرت نمیکنی بلکه قبلی رو میخونی درصورت نیاز آپدیت میکنی آخری سری هم اسم و چیزای دیگه رو چاپ میکنی چیز زیاد سخت و پیچیده ای نیست
ممنونم،
دیتابیس ندارم،
- - - Updated - - -

نوشته اصلی توسط
miladtnt
دوست عزیز بنظر من اسمشو میتونی از تابع ماکرو تایم یا تایم استفاده کنی که عدد بزرگی بر حسب ثانیه و میکرو ثانیه میسازن ... ی مثال برات میزنم
کد PHP:
$time = microtime();
$time = time();
حالا بیا ازین متغیر هرجا ک میخوای استفاده کن عدد ثابتی هست و دیگه تغییر نمیکنه چون یبار ریختی داخل متغیر و اون لحظه رو نشون میده
باسلام ، ممنون
من از دقیقه استفاده میکنم ، در لحظه دو سه اسم تولید میشه ، از ثانیه هم استفاده کردم ولی در لحظه چندین اسم با فایل نصفه نیمه تو هاست ذخیره میشه . درحالیکه وقتی نام ثابت میذارم ی فایل تو هاست میره
- - - Updated - - -

نوشته اصلی توسط
Rezash
در مورد سوال شما دو مشکل هست
اول اینکه اگر دو کاربر همزمان فایل آپلود کنند هر دو یک اسم میگیرند ! چون تنها ملاک شما دقیقه بوده. بهتر است از time و عدد رندوم استفاده کنید.
دوم اینکه چرا دو تا اسم مختلف بگیرید ؟! وقتی نام فایل مشخص شد در یک متغیر یا session بزارید تا برای فایل دوم یا ارسال به کاربر نیاز به فراخوانی مجدد تابع date نداشته باشید.
کدی که اسم رو تولید و استفاده میکنید رو اگر بزارید بهتر میشه راهنمایی کرد
باسلام و تشکر
خیر ، کاربران دسترسی به آپلود ندارن و خودم و دوتا از مدیران سایت .
کدهام خدمت شما
کد PHP:
$sa = date('H');
$da = date('i');
$date = date('Y-m-d-h');
$hasel = $sa * $da;
$myfile = $date . $hasel . '.mp4';
watermark('dastorat darj watermark ' . $myfile);
echo $myfile;
ویرایش توسط samanmo : December 8th, 2016 در ساعت 15:14
ز خیرت خیر پیش آید، بکن چندانکه بتوانی
مکافات بدی کردن، نمیگویم تو خود دانی
-
-
December 8th, 2016, 15:17
#6
عضو دائم
پاسخ : سوال php | نام گذاری فایل آپلود شده
کد PHP:
خلاصه اومدم ساعت رو ضربدر دقیقه کردم بازم نشد. چون دو خروجی میخوام . نتیجه در پنجاه درصد مواقع اینطوری میشه
توی کدهایی که دادید چیز خاصی مشخص نمیشه
دو خروجی رو بیشتر توضیح بدید. دوبار همین اسکریپت با فایل یکسان اجرا میشه ؟
-
-
December 8th, 2016, 16:51
#7
عضو جدید
پاسخ : سوال php | نام گذاری فایل آپلود شده

نوشته اصلی توسط
Rezash
کد PHP:
خلاصه اومدم ساعت رو ضربدر دقیقه کردم بازم نشد. چون دو خروجی میخوام . نتیجه در پنجاه درصد مواقع اینطوری میشه
توی کدهایی که دادید چیز خاصی مشخص نمیشه
دو خروجی رو بیشتر توضیح بدید. دوبار همین اسکریپت با فایل یکسان اجرا میشه ؟
نه، یکبار اجرا میشه
توو خط شش و هفت ببینید $myfile در خط شش یک نتیجه میده و در خط هفت ی نتیجه کاملا جدا و مجزا...
ز خیرت خیر پیش آید، بکن چندانکه بتوانی
مکافات بدی کردن، نمیگویم تو خود دانی
-
-
December 8th, 2016, 17:11
#8
عضو انجمن
پاسخ : سوال php | نام گذاری فایل آپلود شده

نوشته اصلی توسط
samanmo
نه، یکبار اجرا میشه
توو خط شش و هفت ببینید $myfile در خط شش یک نتیجه میده و در خط هفت ی نتیجه کاملا جدا و مجزا...
از کل کد شما خبر ندارم و نمی دونم چرا برای شما این اتفاق میفته ولی یه راه ساده تر هست که اونم هش کردن اسم فایل اصلی (یعنی فایل مبدا که هنوز Watermark نخورده) با یه الگوریتم هش کوتاه مثلاً crc32 هستش چون معمولاً الگوریتم های Hash بر پایه ورودی که بهشون میدین نتیجه یکسانی هر بار میدن و به همین دلیل 10 بار هم اجراش کنید باز همون نتیجه رو میده و این مشکلی که الان دارید رو پیش نمیاره.
md5 و sh1 و... معمولاً خروجی هش طولانی دارن ولی crc32 هش کوتاه عددی برای شما بر می گردونه.
استفاده اش هم خیلی آسونه اینطوری:
کد PHP:
<?php
$myfile = crc32('My Film.mp4');
echo $myfile;
?>
خروجی همیشه یکسان کد بالا: 534215241 هستش یعنی بر طبق ورودی که به تابع crc32 میدید همیشه خروجی عددی یکسانی میگیرین
-
تعداد تشکر ها از AtrafNet به دلیل پست مفید
-
December 8th, 2016, 19:20
#9
پاسخ : سوال php | نام گذاری فایل آپلود شده
دقیقا نفهمیدم سوالتون رو
اگه میخواید نام یکسان باشه
قبل اپلود یک کوکی ایجاد کنید که دقیقه رو بگیره
و زمان اپلود نام رو برابر کوکی ایجاد شده قرار بدید
همین
-
تعداد تشکر ها از ami-karimi به دلیل پست مفید
-
December 8th, 2016, 20:04
#10
عضو جدید
پاسخ : سوال php | نام گذاری فایل آپلود شده

نوشته اصلی توسط
ami-karimi
دقیقا نفهمیدم سوالتون رو
اگه میخواید نام یکسان باشه
قبل اپلود یک کوکی ایجاد کنید که دقیقه رو بگیره
و زمان اپلود نام رو برابر کوکی ایجاد شده قرار بدید
همین
سلام ، ممنونم
ببینید میخوام در هربار اجرای اسکریپت واترمارک یک نام تولید بشه ، به کد زیر دقت کنید
متغییر myfile در خط شش و هفت اومده . در خط شش نتیجه 443344 در خط هفت نتیجه 1223332
درحالیکه من میخوام یکسان باشن .
کد PHP:
$sa = date('H');
$da = date('i');
$date = date('Y-m-d-h');
$hasel = $sa * $da;
$myfile = $date . $hasel . '.mp4';
watermark('dastorat darj watermark ' . $myfile);
echo $myfile;
ز خیرت خیر پیش آید، بکن چندانکه بتوانی
مکافات بدی کردن، نمیگویم تو خود دانی
-