> آپلود فایل در PHP
میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

آپلود فایل در PHP

آپلود فایل در PHP به همراه محدودیت در سایز و نوع فایل (عکس , ویدیو …) در سرور از قابلیت های بسیار مهم و کاربردی در وب است.

در این آموزش میبینیم که چگونه فایل هایی با سایز مشخص شده و نوع (فرمت) خاص را آپلود کنیم. همه مراحل به صورت قدم به قدم در قالب کد های قابل فهم در اختیار شما قرار می گیرد.

 

ساخت اسکریپت ساده آپلود فایل در PHP

قبل از ادامه با کد های PHP , یک فرم HTML داخل قسمت body با enctype “multipart/form-data” ایجاد می کنیم . اول از همه یک اسکریپت ساده php می نویسیم و بعد محدودیت های حجم و نوع فایل را اضافه می کنیم.

<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file"/> <br /><br />
<input type="submit" value="submit" />
</form>

حین آپلود فایل , همه داده فایل ها در آرایه سوپرگلوبال $_FILES ذخیره می شود . این آرایه داده هایی مثل اسم فایل , نوع فایل , مکان موقتی فایل و همچنین سایز و ارور کد ها را ذخیره می کند.

می توانید با استفاده از کد زیر این آرایه سوپرگلوبال را بررسی کنید . این کد را اول کد html خود قرارا بدید و بعد از submit کردن نتیجه را ببینید

<?php
echo "<pre>";
print_r($_FILES);
echo "</pre>";
?>

بعد از بررسی این کد, شما دقیقا خواهید فهمید چه مقادیری در آرایه FILES وجود دارد .عکس زیر تصویر ساده ای از داده های این آرایه است.

 

اختصاص دادن خانه های آرایه به متغییرها

برای قدم بعدی آپلود فایل در PHP , من داده های هر خانه از آرایه سوپر گلوبال را به متغییرها اختصاص میدم. کد های قبلی را پاک کنید و این کد ها را به خطوط قبل از شروع html اضافه کنید.

بررسی اینکه فایل آپلود شده یا نه ؟

قدم بعدی این است که بررسی کنیم که آیا کاربر فایل را برای آپلود انتخاب کرده است یا نه . . اگر آره, پس ما فایل را داخل دایرکتری مورد نظر آپلود می کنیم.کد زیر را به بعد از کد بالا اضافه کنید.

کدهای آپلود فایل ذر PHP

به طور پیش فرض فایل های آپلود شده در مکان موقتی (temporary) ذخیره می شود. با استفاده از تابع move_uploaded_file, فایل آپلود شده در مکان موقتی را با اسم واقعی به فولدر uploads/ انتقال می دهیم.

کد کامل و نهایی تا این مرحله

بعد از ترکیب تمام کد های کوتاه, کد نهایی به این شکل خواهد بود.

محدودیت حجم آپلود فایل در PHP

در این مرحله , مقدار حداکثری فایل قابل آپلود توسط فرم را مشخص میکنیم که ۲MB است و باید به صورت بایت نوشته شود.

این کد ها را در قسمت این کامنت //file upload code goes here اضافه کنید.

if($size<=$max_size){
$location = 'uploads/';
if(move_uploaded_file($tmp_name, $location.$name)){
echo "uploaded";
}else{
echo "Error in uploading file";
}
}else{
echo "file size is more than maximum";
}

محدودیت پسوند و نوع فایل آپلودی

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

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

کد نهایی آپلود فایل در PHP

 

<?php
$name = $_FILES['file']['name'];
$size = $_FILES['file']['size'];
$type = $_FILES['file']['type'];
$tmp_name = $_FILES['file']['tmp_name'];
$max_size = 1000000;
$ext = substr($name, strpos($name, '.') + 1);
if(isset($name)){
if(!empty($name)){
if($size<=$max_size){
if(($ext == 'jpg' || $ext == 'jpeg')&&$type=='image/jpeg'){
$location = 'uploads/';
if(move_uploaded_file($tmp_name, $location.$name)){
echo "uploaded";
}else{
echo "Error in uploading file";
}
}else{
echo "file should be jpg/jpeg";
}
}else{
echo "file size is more than maximum";
}
}else{
echo "Please select a file";
}
}
?>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file"/> <br /><br />
<input type="submit" value="submit" />
</form>

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟