بارگذاری فایل Upload File در Php

بازدید: 644 بازدید
بارگذاری فایل

در مباحث قبلی اشاره شد که php یک زبان برنامه نویسی سمت سرور است.

این ویژگی php باعث شده تا تمام کدهایی که با این زبان می نویسید ، روی سرور پردازش و نتیجه گیری شوند.

در این صورت ، بارگذاری یا Upload یک فایل روی سرور، با استفاده از این زبان کار بسیار راحتی خواهد بود.

در ادامه سری آموزش های حرفه ای برنامه نویسی php، امروز درباره نحوه بارگذاری یا Uploadفایل روی سرور صحبت خواهیم کرد.

همره پرنیان باشید.

با سلام خدمت همراهان همیشگی پرنیان طرح

در مباحث قبلی اشاره شد که php یک زبان برنامه نویسی سمت سرور است.

این ویژگی php باعث شده تا تمام کدهایی که با این زبان می نویسید ، روی سرور پردازش و نتیجه گیری شوند.

در این صورت ، بارگذاری یا Upload یک فایل روی سرور، با استفاده از این زبان کار بسیار راحتی خواهد بود.

در ادامه سری آموزش های حرفه ای برنامه نویسی php، امروز درباره نحوه بارگذاری یا Uploadفایل روی سرور صحبت خواهیم کرد.

همره پرنیان باشید.

 یک نکته حرفه ای!

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

بنابراین همیشه قبل از آپلود فایل ها، دقت کامل روی فایل را داشته باشید.

upload
upload

پیکربندی فایل php.ini

قبل از هر چیز، باید اطمینان حاصل کنید که آیا php برای اجازه دادن به آپلود فایل ها، پیکربندی شده است یا نه.

در فایل php.ini خود ، دستور file_uploads را جستجو کنید.

و آن را روی مقدار زیر تنظیم کنید:

file_uploads = On

ایجاد فرم Html

در قدم بعدی، یک فرم Html ایجاد می کنیم.
این فرم به کاربران اجازه خواهد داد تا فایل تصویری خود را برای آپلود انتخاب کنند و آن را آپلود کنند:
[php]

Select image to upload:

[/php]

برخی از قوانینی که باید در مورد فرم بالا رعایت شود:

اطمینان حاصل کنید که فرم از شما از متد post برای ارسال اطلاعات استفاده می کند.

فرم به ویژگی زیر نیاز دارد:

enctype=”multipart/form-data

این گزینه مشخص کننده نوع محتوای مورد استفاده درهنگام ارسال اطلاعات است.

بدون رعایت الزامات فوق، فرم مورد نظر آپلود نخواهد شد.

چیزهای دیگری که باید به آن توجه داشته باشید:

صفت “type=”file در تگ <input> فیلد ورودی را به  عنوان یک کنترل انتخاب فایل، به همراه یک دکمه browse در کنار کنترل ورودی  نمایش می دهد.

فرم بالا ، اطلاعاتی دریافتی را به فایلی با نام upload.php که بعدا ایجاد خواهیم کرد، می فرستد.

ایجاد یک فایل آپلود با کدهای php

فایل upload.php ، شامل کدهایی برای آپلود کردن فایل است:

[php]
<?php
$target_dir = “uploads/”;
$target_file = $target_dir . basename($_FILES[“fileToUpload”][“name”]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST[“submit”])) {
$check = getimagesize($_FILES[“fileToUpload”][“tmp_name”]);
if($check !== false) {
echo “File is an image – ” . $check[“mime”] . “.”;
$uploadOk = 1;
} else {
echo “File is not an image.”;
$uploadOk = 0;
}
}
?>

[/php]

توضیحات متن بالا

$target_dir = “uploads/”

مشخص کننده پوشه ای است که فایلی که قرار است آپلود شود در آن قرار خواهد گرفت.
$target_file
مسیر آپلود پرونده را مشخص می کند.
$uploadOk=1
فعلا استفاده نمی شود. (بعدا استفاده خواهد شد.)
$imageFileType
پسوند فایل را در خود نگه می دارد. (در موارد کوچک)
در قدم بعدی بررسی می کنیم که آیا تصویر انتخاب شده توسط کاربر، یک تصویر درست و صحیح است یا تقلبی (fake)

 نکته!

شما باید یک پوشه جدید با نام uploads ، در پوشه ای که فایل upload.php در آن قرار دارد ایجاد کنید.

بعد از این، فایل هایی که آپلود می کنید در این پوشه قرار می گیرند.

چک کردن اینکه آیا فایل از قبل وجود دارد ؟

حالا می توانیم برای آپلود فایل در فرم ، محدودیت هایی تعیین کنیم.

ابتدا چک میکنیم که آیا فایلی که کاربر قصد آپلود کردن آن را دارد، از قبل در پوشه آپلود ها وجود دارد یا نه؟

به عبارت دیگر از تکرار یک تصویر جلوگیری میکنیم.

اگر تصویر در پوشه موجود باشد، یک پیغام خطا برای کاربر نمایش داده می شود.

همچنین مقدار متغیر uploadOk$ برابر با 0 خواهد شد.

[php]

// Check if file already exists
if (file_exists($target_file)) {
echo “Sorry, file already exists.”;
$uploadOk = 0;
}

[/php]

محدودیت اندازه فایل

فیلدی که قرار است فایل ورودی را دریافت کند،در فرم مثال بالا، fileToUpload نامگذاری شده است.

حالا میخواهیم سایز یا اندازه فایلی که کاربر قصد آپلود کردن آن را دارد، محدود کنیم.

اگر حجم فایل از 500کیلوبایت بیشتر بود، یک پیغام خطا نمایش داده می شود و مقدار متغیرuploadOk$ با 0 برابر می شود.

[php]

// Check file size
if ($_FILES[“fileToUpload”][“size”] > 500000) {
echo “Sorry, your file is too large.”;
$uploadOk = 0;
}

[/php]

محدودیت نوع فایل

مثال زیر تعیین می کند که کاربر تنها می تواند فایل هایی با پسوند های JPG, JPEG, PNG, وGIF را بارگذاری کند.

در این حالت ، انتخاب تصویر با هر پسوند دیگر باعث نمایش پیغام خطا قبل از مقداردهی متغیرuploadOk$ با 0 می شود.

[php]

// Allow certain file formats
if($imageFileType != “jpg” && $imageFileType != “png” && $imageFileType != “jpeg”
&& $imageFileType != “gif” ) {
echo “Sorry, only JPG, JPEG, PNG & GIF files are allowed.”;
$uploadOk = 0;
}

[/php]

 

 

آپلود تصویر
آپلود تصویر

تنطیمات و محدودیت های فرم ها به پایاین رسید.

شما می توانید اسکریپت کامل فرم ساخته شده ، به همراه محدودیت های ایجاد شده را در این لینک مشاهده کنید.

 

اگر این مطلب برای شما مفید بود، ما را در گوگل ستاره باران کنید.

دسته بندی برنامه نویسی php
اشتراک گذاری
مقالات مرتبط

دیدگاهتان را بنویسید

سبد خرید

هیچ محصولی در سبد خرید نیست.