logo2

-----------------------------------------------

** (160 جلسه) آموزش کامل و 0 تا 100 برنامه نویسی PHP **

آخرین مطالب ارسال شده

مطالب بر اساس ماه

تبلیغات

تبلیغات

پست ثابت

برای ورود کلیک کنید

تبلیغات

پست ثابت

برای ورود کلیک کنید

در مبحثی دیگر، کدهایی ارائه دادیم که برای ساخت یک فرم بودند که با آن، کاربر می توانست یک فایل را آپلود کند. اما گاهی نیاز داریم که چندین فایل را به طور همزمان آپلود کنیم، برای این منظور، ابتدا کدهای مربوط به آن مبحث را که برای آپلود یک فایل به کار می رود، در اینجا می نویسیم و سپس تغییرات لازم را به آنها اعمال می کنیم تا به طور همزمان، کاربر بتواند چندین فایل را آپلود کند (اینگونه، تفاوت بین حالت آپلود یک فایل با حالت آپلود همزمان چند فایل را هم بهتر متوجه خواهید شد).

برای قسمت آپلود، ابتدا یک فرم HTML می سازیم و سپس اطلاعات حاصل از فرم را به یک فایل PHP می فرستیم تا بر روی آن اطلاعات، پردازش کند (این شیوه کلی ساخت فرم ها است). بنابراین یک فایل با نامی دلخواه می سازیم و کدهای زیر را درون آن می نویسیم (چون یک فرم HTML است، پس می تواند پسوند فایل، html یا php باشد) :

 

همان طور که از کد بالا مشخص است، این فرم، اطلاعات را با روش POST ، به فایل upload_file.php می فرستد تا این فایل، بر روی اطلاعات دریافتی، پردازش کند. مشخصه enctype برای فرم، مشخص می کند که نوع اطلاعاتی که کاربر ارسال می کند، چه می باشد. با انتخاب multipart/form-data برای این مشخصه، اعلام کرده ایم که اطلاعات ارسالی، به صورت اطلاعات دودویی (binary data) است.

درون تگ input ، مشخصه type را برابر file قرار داده ایم تا اعلام کنیم که نوع ورودی، به صورت فایل می باشد. بنابراین درون فرم، یک دکمه browse به کاربر نمایش داده می شود تا با آن بتواند فایل مورد نظر را از کامپیوتر خود انتخاب نماید.

یک فایل با نام upload_file.php می سازیم و کدهای زیر را درون آن می نویسیم :

قبلا در مبحثی دیگر، این کدها را شرح داده ایم، تنها به طور مختصر، یادآوری می کنیم نوع فایل را به صورت عکس در نظر گرفته ایم (با چند پسوند که مشخص کرده ایم) و همچنین یک حداکثر اندازه نیز برای فایل در نظر گرفته ایم، بنابراین اگر فایل انتخاب شده توسط کاربر، با این مشخصات، تطابق نداشته باشد، فایل آپلود نخواهد شد. دقت داشته باشید که حتما آپلود فایل توسط کاربر را باید تنها به یک یا چند نوع فایل، محدود کنیم، در غیر این صورت، ممکن است یک هکر، یک صفحه شامل کد را در سرور آپلود کند و سپس با وارد کردن آدرس آن فایل، در مرورگر اینترنت خود، یک سری کد مخرب، در سرور شما اجرا گردد. همچنین، در کد بالا، پوشه ای با نام upload برای محل ذخیره فایل ها در نظر گرفته شده است که باید آن را بسازید. همچنین دقت داشته باشید که $_FILE یک متغیر فوق سراسری می باشد که اطلاعات مربوط به فایلی که آپلود می کنیم، در آن ذخیره می شود و با کدها، این اطلاعات را از آن دریافت کرده و فایل را در سرور ذخیره می کنیم.

 

تغییر کدهای PHP ، برای ایجاد امکان آپلود همزمان چند فایل :

اکنون فرض کنید که می خواهیم به طور همزمان، کاربر بتواند 3 فایل را انتخاب کند، برای این منظور، کدهای مربوط به فرم را که در ابتدا به صورت زیر بوده است :

به این شکل، تغییر می دهیم :

با مقایسه کدها، متوجه خواهید شد که قبلا تنها یک تگ input از نوع file داشتیم، اما اکنون 3 تا داریم. همچنین، مشخصه name برای آنها، دیگر برابر file نیست، بلکه برابر file[] می باشد. همچنین، تگ label را حذف کرده ایم (اهمیتی ندارد، ترجیح دادیم که برای خلوت تر شدن کدها، آن را حذف کنیم).

شکل فرم، به صورت زیر می باشد :

upload-form2

کدهای فایل پردازش کننده فرم، قبلا به صورت زیر بود (برای آپلود یک فایل) :

و ما آن را به صورت زیر تغییر می دهیم (برای آپلود همزمان چند فایل) :

اولین تغییر، ساخت یک حلقه for برای کل کدها می باشد :

این حلقه، به تعداد فایل هایی که آپلود می شود، اجرا خواهد شد (مثلا چون 3 فایل را آپلود می کنیم، بنابراین کدهای درون حلقه for ، سه بار اجرا می شوند).

علاوه بر این، به انتهای تمامی عبارت هایی که به متغیر فوق سراسری $_FILE ارجاع داده اند، عبارت [$i] نیز افزوده شده است (زیرا قبلا تنها یک فایل داشتیم، اما اکنون چند فایل داریم و باید مشخص کنیم که اطلاعات مربوط به کدام فایل را می خواهیم از متغیر فوق سراسری $_FILE فراخوانی کنیم).

 

جعبه دانلود

ورژن :

پسورد فایل ها : www.scriptbaran.com

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

  • 1. از نوشتن دیدگاه های غیر مرتبط با پست جدا خودداری کنید ؛ پرسش های غیرمرتبط را در انجمن مطرح کنید
  • 2. در خواست های خود برای اسکریپت ها و افزونه ها را فقط از طریق تماس با ما ارسال کنید.
  • 3. فقط فارسی تایپ کنید و برای سوال مجدد در صفحه از دکمه پاسخ دادن استفاده نمایید.
  • 4. قبل از ارسال کامنت حتما متن پست + نظرات سایر دوستان را بخوانید .
  • 5. نظر شما ممکن است بدون پاسخ تایید شوند که در این صورت باید منتظر پاسخ از سوی دیگر کاربران باشید .

به اسکریپت باران امتیاز دهید