ODE112
کاربر قدیمی پرشین تولز
این راهنما فقط برای برنامه نویسایی هست که اطلاعات کافی در مورد کدهای پی اچ پی و اجاکس و پرل دارن!
حتما تا حالا سایتای باکلاس کم ندید که قسمت آپلود فایلشون بهتون بگه چند درصد از فایل آپلود شده و سرعت آپلودتون چقدر هست! اما چطوری میشه فهمید چند درصد از فایل ما آپلود شده؟
خب ما یه مقدار تو PHP داریم که بهمون سایز فایل رو تو شاخه تمپ میده! ولی خب رو هیچ سروری فعال نیست و فقط روی VPS ِیا Dedicate میتونید ازش استفاده کنید!
با این مقدار میشه یه اپلود پروسز بار بی دردسر ساخت!
ولی اونایی که سرور اشتراکی دارن! یا یه سایت ظریف دارن که یه آپلود ظریف هم میخواد مثلا برای اپلود اواتور که رو سرور اشتراکی هستن و هاست کوچیک موچیک دارن باید با Cgi آپلودشونو بسازن!
نمونه آنلاین
حالا روش کار چطوری هست!
وقتی شما یه کد میزنید که باهاش یه فایل رو کاربر آپلود کنه!
مثلا وقتی کاربر میزنه یه فایل 60 میگی آپلود بشه!
php اول میاد یه فایل به اسم اتفاقی مثلا TMP4564254 میسازه تو شاخه TMP که سایزش 0 بایت هست!
بعد خرده خرده که محتویات فایل رو از فرم HTML دریافت میکنه اونا رو میریزه توی این فایل!
سایز این فایل ذره ذره میره بالا! مثلا میشه 3 مگ! 4 مگ! 5 مگ... تا وقتی بشه 60 مگ!
وقتی شد 60 مگ از اینجا پاک میشه و میره به فلدره upload که شما تعیین کردید...
حالا چطوری میشه اسم اون فایل در حال آپلود رو حدس زد وسایزشو گرفت؟
با PHP که نمیشه!
اگه میخواید سایز اون فایل رو پیدا کنید همین الان بیخیال PHP بشید!
با CGI میشه اسم اون فایل رو حدس زد ولی چطوری؟
قدم اول این هست که دایرکتوری TEMP CGI رو از حال دیفالتش خارج کردو دایرکتوری خدمون رو بهش بدیم!
وقتی دایرکتوری TMP رو برای CGI عوض کردیم! اونوقت یه قدم به فایل مورد نظرمون نزدیک تر شدیم!
وقتی دایرکتوری TMP رو تغییر دادیم میتونیم برای هر فایلی که آپلود میشه! یه شاخه تمپ جدید ساخت و فایل های در حال آپلود رو تو اون نگه داشت تا زمانی که پر بشن!
بقیشو بعدا میگم که چطوری شاخه tmp رو عوض کنید!
حتما تا حالا سایتای باکلاس کم ندید که قسمت آپلود فایلشون بهتون بگه چند درصد از فایل آپلود شده و سرعت آپلودتون چقدر هست! اما چطوری میشه فهمید چند درصد از فایل ما آپلود شده؟
خب ما یه مقدار تو PHP داریم که بهمون سایز فایل رو تو شاخه تمپ میده! ولی خب رو هیچ سروری فعال نیست و فقط روی VPS ِیا Dedicate میتونید ازش استفاده کنید!
با این مقدار میشه یه اپلود پروسز بار بی دردسر ساخت!
ولی اونایی که سرور اشتراکی دارن! یا یه سایت ظریف دارن که یه آپلود ظریف هم میخواد مثلا برای اپلود اواتور که رو سرور اشتراکی هستن و هاست کوچیک موچیک دارن باید با Cgi آپلودشونو بسازن!
نمونه آنلاین
کد:
http://airyana.com/aliupload_sample/sample_upload_form.html
حالا روش کار چطوری هست!
وقتی شما یه کد میزنید که باهاش یه فایل رو کاربر آپلود کنه!
مثلا وقتی کاربر میزنه یه فایل 60 میگی آپلود بشه!
php اول میاد یه فایل به اسم اتفاقی مثلا TMP4564254 میسازه تو شاخه TMP که سایزش 0 بایت هست!
بعد خرده خرده که محتویات فایل رو از فرم HTML دریافت میکنه اونا رو میریزه توی این فایل!
سایز این فایل ذره ذره میره بالا! مثلا میشه 3 مگ! 4 مگ! 5 مگ... تا وقتی بشه 60 مگ!
وقتی شد 60 مگ از اینجا پاک میشه و میره به فلدره upload که شما تعیین کردید...
حالا چطوری میشه اسم اون فایل در حال آپلود رو حدس زد وسایزشو گرفت؟
با PHP که نمیشه!
اگه میخواید سایز اون فایل رو پیدا کنید همین الان بیخیال PHP بشید!
با CGI میشه اسم اون فایل رو حدس زد ولی چطوری؟
قدم اول این هست که دایرکتوری TEMP CGI رو از حال دیفالتش خارج کردو دایرکتوری خدمون رو بهش بدیم!
وقتی دایرکتوری TMP رو برای CGI عوض کردیم! اونوقت یه قدم به فایل مورد نظرمون نزدیک تر شدیم!
وقتی دایرکتوری TMP رو تغییر دادیم میتونیم برای هر فایلی که آپلود میشه! یه شاخه تمپ جدید ساخت و فایل های در حال آپلود رو تو اون نگه داشت تا زمانی که پر بشن!
بقیشو بعدا میگم که چطوری شاخه tmp رو عوض کنید!