مشخصات مقاله
-
3081
-
0.0
-
16929
-
0
-
0
آموزش ارسال فایل Upload در PHP
آموزش ارسال فایل Upload در زبان PHP :
آپلود فایل ها بر روی سرور با استفاده از زبان PHP بسیار ساده است.اما همواره با سادگی خطراتی هم همراه خواهد بود. بنابراین هنگام آپلود فایل ها بر سرور به دلیل امکان ارسال فایل های مخرب یاحجیم بسیار دقت کنید.
مرحله اول تنظیم فایل “php.ini”:
در مرحله اول بایستی مطمئن باشید که سرور PHP شما جهت امکان دریافت فایل٬تنظیم شده باشد.
درون فایل”php.ini" به دنبال خاصیت file Upload گشته و همانند کد زیر مقدار آن را بر روی on قرار دهید:
file_uploads = On
مرحله دوم-ایجاد فرم Html لازم جهت آپلودفایل:
در مرحله دوم٬ بایستی یک فرم Html طراحی کنید که در آن کاربر بتواند یک فایل مثل عکس یا image را انتخاب کرده و آپلود کند. همانند کد فرم زیر:
< !DOCTYPE html>
< html>
< body>
< form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
< /form>
< /body>
< /html>
قواعد زیر را بایستی در هنگام تعریف کد فرم Html رعایت کنید:
- حتما مطمئن شوید که خاصیت method="Post" تنظیم شده باشد.
- همچنین لازم است فرم حاوی خاصیت enctype="multiparty/form-data" باشد. این خاصیت تعیین کننده نوع محتویات قابل ارسال "”count-type در هنگام ارسال یا submit فرم است.بدون تنظیم موارد فوق٬ آپلود فایل با مشکل مواجه خواهد شد.
موارد زیر را نیز در تنظیم فرم رعایت کنید:
- تعیین خاصیت type="file " در تگ باعث می شود تا این کنترل به شکل یک دکمه فرمان انتخاب فایل یا file-select control درآمده و یک دکمه Browse جهت پیدا کردن فایل مورد نظر را در کنار کنترل input نشان دهد.
فرم Html کد مثال فوق٬ اطلاعات فایل را به صفحه " “upload.PHP که در مرحله بعدی ایجاد خواهیم کرد٬می فرستد.
مرحله سوم-تعیین اسکریپت لازم جهت آپلود فایل:
کد فایل”upload.PHP" که برای آپلود فایل به کار می رود به صورت زیر است.آن را مرور کنید. در انتها به توضیح نکات مهم آن پرداخته ایم:
توضیح موارد موجود در کد فوق به شرح زیر است:
- تعیین خاصیت "uploads/" “$target_dir " = پوشه ای که فایل آپلود شده بایستی در آن قرار بگیرد را نشان می دهد.
- خاصیت "”$target_file مسیر لازم جهت انتخاب فایل برای آپلود را مشخص می کند.
- خاصیت =1 $uploadOK در حال حاضر استفاده نمی شود و در مراحل بعدی به تشریح آن خواهیم پرداخت.
- خاصیتImageFileType $ تعیین کننده پسوند یا extension فایل جهت آپلود است.
- در مرحله آخر هم چک کرده ایم که آیا فایل image یک فایل واقعی عکس یا یک فایل جعلی است که در صورت جعلی بودن آن از انجام عملیات آپلود جلوگیری می شود.
شما باید یک پوشه جدید به نام “uploads" را در مسیری که فایل "”upload.php قرار دارد ایجاد کنید. فایل های أپلود شده در این پوشه ذخیره خواهند شد.
آموزش چک کردن این که فایل از قبل وجود داشته یا نه:
در مراحل بعدی قصد داریم تا چندین مراحل محدودیت یا کنترل فایل را جهت آپلود فایل وضع کنیم. در بخش اول بایستی بررسی کنیم که آیا فایلی که می خواهیم آپلود کنیم از قبل وجود داشته یا نه. اگر فایل مورد نظر از قبل وجود داشته باشد باید از عمل آپلود جلوگیری کرده و یک پیام هشدار را به صورت کد زیر به کاربر نمایش دهیم. همچنین با تنظیم خاصیت uploadOK=0 $ عملیات آپلود لغو خواهد شد:
/ Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
آموزش تعیین حجم مجاز فایل جهت آپلود:
فیلد آپلود فایل یا file input field در کدHtml فوق به نام “file To Upload" می باشد.
در بخش دوم بایستی حجم سایز جهت آپلود را چک کنیم.اگر حجم فایل بیشتر از ۵۰۰کیلوبایت باشد٬ از ارسال فایل جلوگیری کرده و یک پیام هشدار به کاربر نمایش خواهیم داد. به صورت زیر:
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
با تعیین مقدار خاصیت uploadOK=0 $ عملیات ارسال فایل لغو خواهد شد.
آموزش تعیین نوع داده ای فایل جهت آپلود:
کد زیر به کاربر امکان آپلود فایل هایی با پسوند JPEG٬ JPG٬PNG و GIF که پسوندهای رایج عکس می باشند را می دهد. اگر نوع فایل به غیر از انواع تعیین شده باشد٬ یک پیام هشدار به کاربر نشان داده شده و با تنظیم خاصیتuploadOK=0 $ عملیات ارسال فایل لغو خواهد شد:
// 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;
}
کد کامل اسکریپت لازم جهت آپلود فایل:
در نهایت٬ کد اسکریپت لازم جهت آپلود فایل به صورت زیر درخواهد آمد:
500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// 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;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
مرجع کامل کار با FileSystem در PHP :
برای دریافت اطلاعات کامل درباره توابع کار با فایل ها به مرجع کامل آموزش PHPFileSystem در سایت تحویل داده بروید.