آموزش آپلود تصویر با php
آموزش آپلود تصویر با php
در این پست آموزش آپلود تصویر با PHP را برایتان قرار داده ایم.
برای ظاهر برنامه از یک قالب ساده استفاده شده که درک کدهای CSS آن خیلی راحت می باشد.
توضیح کدهای فایل index.php
<html> <head> <meta charset="UTF-8"> <title>آپلود تصویر</title> <link href="style.css" type="text/css" rel="stylesheet"> </head> <bod> <div class="wrapper"> <div class="header"> <a href="http://www.iranganj.ir"><img style="margin-top: 20px;margin-right: 30px;" src="logo.png"></a> </div> <div class="main"> <div class="sidebar"> <ul> <li> <a href="index.php">صفحه اصلی</a> </li> </ul> </div> <?php $valid_formats = array("jpg", "JPG", "png", "PNG", "gif", "GIF", "bmp", "BMP"); $max_file_size = 1024 * 100; //100 kb $path = "uploads/"; // Upload directory if (isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") { if ($_FILES['file_upload']['name'] != "") { $name = $_FILES['file_upload']['name']; $imageInfo = getimagesize($_FILES["file_upload"]["tmp_name"]); $imageWidth = $imageInfo[0]; $imageHeight = $imageInfo[1]; if ($_FILES['file_upload']['error'] == 0) { if ($_FILES['file_upload']['size'] > $max_file_size) { $str = "حجم تصویر انتخاب شده باید کمتر از 100 کیلوبایت باشد"; } elseif (!in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats)) { $str = "فرمت تصویر انتخاب شده مجاز نمی باشد"; } elseif ($imageHeight > 200 || $imageWidth > 200) { $str = "اندازه تصویر انتخاب شده باید 200 در 200 باشد"; } else { // No error found! Move uploaded files if (move_uploaded_file($_FILES["file_upload"]["tmp_name"], $path . $name)) { $str = "تصویر با موفقیت آپلود شد"; } } } } else { $str = "شما تصویری را انتخاب نکرده اید"; } } ?> <div class="content"> <?php if (isset($str)) { echo $str; } ?> <form action="index.php" enctype="multipart/form-data" method="post"> <div> <span><label>تصویری برای خودتان انتخاب کنید</label></span> <span><label>اندازه تصویر انتخاب شده باید 200 در 200 باشد</label></span> <div> <input type="file" name="file_upload"/> </div> </div> <br/> <div> <div class="buttons"> <button type="submit" name="submit">بارگذاری</button> </div> </div> </form> </div> </div> <div class="footer"> <h4 style="text-align: center;padding: 20px;"><a href="http://www.iranganj.ir">تمامی حقوق متعلق به سایت ایران گنج می باشد</a></h4> </div> </div> </bod> </html>
در این فایل ابتدا یک فرم برای آپلود فایل ایجاد می کنیم که در آموزش های قبلی نحوه ایجاد فرم را یاد گرفتیم و فقط در این قسمت به تفاوت هایی که وجود دارد اشاره می کنیم. اولن تفاوت در تگ فرم می باشد که حتما باید ویژگی enctype مورد نظر را باید برابر multipart/form-data قرار دهیم. همچنین یک تگ input داریم که نوع آن file می باشد چون می خواهیم عمل آپلود را انجام دهیم و نام آن نیز file_upload می باشد و یک دکمه نیز درست کردیم.
حال کدهای php مورد نظر را توضیح می دهیم.
در ابتدا فرمت مورد نظر تصویر و اندازه فایل و حجم فایل را در متغیرهای مشخص شده تعیین کردیم سپس چک می کنیم که آیا کاربر بر روی دکمه آپلود کلیک کرده یا نه، اگر کلیک کرده بود در خط بعدی چک می کنیم که نام فایل خالی نباشد و اگر خالی بود در قسمت else پیغام می دهیم که کاربر تصویری را انتخاب نکرده است. سپس در خط بعدی نام فایل را در متغیر name ریخته ایم و در خطوط بعدی با استفاده از تابع getimagesize طول و عرض تصویر را بدست می آوریم و در متغیرهای مربوطه قرار می دهیم.
در خط بعدی چک می کنیم که خطایی وجود نداشته باشد، سپس حجم فایل را چک می کنیم که اگر بیشتر از مقدار تعیین شده بود به کاربر پغام دهیم. در خط بعدی فرمت تصویر مورد نظر را چک می کنیم که در فرمتهایی که تعیین کردیم باشد وگرنه به کاربر پیغام می دهیم. در خط بعدی نیز طول و عرض تصویر را چک می کنیم. در نهایت با استفاده از تابع move_uploaded_file تصویر مورد نظر را آپلود کرده و به کاربر پیغام می دهیم.
نظر / سوال