رفتن به مطلب

آموزش آپلود فایل در php


Moderator

پست های پیشنهاد شده

 

my-upload.png

 

 

 

 

مرحله اول، تعریف یک فرم html با 2 ورودی از نوع های file و submit که در قطعه کد زیر آورده شده:

HTML

<form action="" method="post" enctype="multipart/form-data">   <input type="file" name="files[]" multiple="multiple" accept="image/*">   <input type="submit" value="آپلود کن!"></form>

قطعه کد بالا، چند بخش مهم داره که این فرم رو از فرم های ساده دیگه متمایز میکنه. یکی از این موارد تعریف ویژگی enctype با مقدار multipart/form-data که مشخص میکنه این فرم مرتبط با کنترل آپلود. همچنین، input اول حتما باید از نوع file در نظر گرفته بشه و با تعریف ویژگی های multiple (ورودی همزمان از چند فایل) و accept (محدود سازی نوع فایل مورد قبول)، میشه چند تنظیم ساده رو به فرم اضافه کرد.

مشخص که این فرم، قرار یک سری داده رو با متد post ارسال کنه. بنابراین مرحله بعدی کار اختصاص داره به دریافت اطلاعات و پردازش اونها که برای انجام این کار نیاز به استفاده از کدنویسی php داریم:PHP

<?php$valid_formats = array("jpg", "png", "gif", "zip", "bmp"); // فایل های مجاز جهت آپلود$max_file_size = 1024*100; //100 کیلوبایت$path = "uploads/"; // فولدر مقصد$count = 0; // متغیر شمارندهif(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){   // حلقه  $_FILES برای اجرای تمامی فایل ها   foreach ($_FILES['files']['name'] as $f => $name) {            if ($_FILES['files']['error'][$f] == 4) {           continue; // پرش از فایل در صورت یافتن خطا       }                  if ($_FILES['files']['error'][$f] == 0) {                          if ($_FILES['files']['size'][$f] > $max_file_size) {               $message[] = "$name از حجمی بالاتر از مقدار مجاز برخوردار است.";               continue; // پرش در صورت داشتن حجم غیر مجاز           }           elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){               $message[] = "$name از فرمت فایلی مجاز برای آپلود برخوردار نیست.";               continue; // پرش در صورت داشتن فرمت غیر مجاز           }           else{ // اگر هیچ خطایی یافت نشد، فایل را منتقل کن!               if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name)) {                   $count++; // شمارنده تعداد فایل های آپلود شده               }           }       }   }}?>

توضیح متغیرهای استفاده شده در بخش بالا:

 

 

  • متغیر valid_formats: آرایه ای از فرمت های مورد قبول که در شرط های پایین تر استفاده شده.
  • متغیر max_file_size: محدود سازی حجم آپلود
  • متغیر path: آدرس پوشه مقصد که فایل ها در اونجا آپلود میشن.
  • متغیر count: شمارنده تعداد فایل های ارسالی در یک آپلود.

 

توضیح بقیه دستورات، در متن کدها کامنت گذاری شده و میتونید وظیفه هر خط رو در محل خودش مطالعه کنید.

تا اینجا، دیگه کار ارسال فایل ها تموم شده. فقط برای گام آخر باید پیغام وضعیت آپلود رو که در قطعه کد بالا مشخص کردیم، چاپ کنیم: (برای انجام این کار، میتونید از کد زیر در بالا یا پایین فرم html استفاده کنید.)

PHP

 

 

<?php# پیغام خطاif (isset($message)) {   foreach ($message as $msg) {       printf("<p class='status'>%s</p></ br>\n", $msg);   }}# پیغام موفقیت آمیز بودن بارگذاریif($count !=0){   printf("<p class='status'>%d فایل با موفقیت اضافه شد.</p>\n", $count);}?>

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
×
×
  • اضافه کردن...