خدمت شما کاربران محترم وبسایت آموزش برنامه نویسی و طراحی وب سلام عرض می کنم. امروز هم با یک آموزش ویژه در خدمت شما هستم. امروز با آموزش آپلود تصویر توسط php در خدمت شما هستیم.
پیش نیازها:
قبل از شروع آموزش لازم است تا با مفاهیم زیر آشنایی داشته باشید:
آموزش طراحی وب HTML و CSS
آموزش PHP
آپلود فایل توسط php
همانطور که می دانید آپلود و بارگزاری تصویر از ابزارهایی بسیار کاربردی برای مدیریت یک وبسایت است. توسط PHP به راحتی می توانید فایل ها را در سرور آپلود کنید. البته همین راحتی در آپلود فایلها می تواند امنیت سایت را به خطر بیاندازد پس حتما باید مراقب فایل های ارسالی باشید. در این آموزش ابتدا فایل آپلود شده را از نظر نوع و حجم بررسی می کنیم و در صورت صحت اطلاعات آن را روی سرور آپلود می کنیم.
پیکره بندی فایل "php.ini"
ابتدا مطمئن شوید که php مجوز آپلود فایل را می دهد. برای این کار فایل "php.ini" را باز کنید و عبارت file_uploads را جستجو کنید و سپس مقدار آن را به on تغییر دهید.
سپس یک فرم HTML بسازید تا کاربران قادر به انتخاب تصویر و ارسال آن به سمت سرور جهت آپلود را داشته باشند.
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload: <input type="file" name="myFile" id="myFile">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
در فرم بالا دقت داشته باشید که دو نکته زیر را حتما رعایت کنید:
- فرم حتما با روش post ارسال شود.
- فرم حتما بایستی از خصوصیت enctype="multipart/form-data" استفاده
کند. این خصوصیت مشخص می کند که فرم چه نوع محتوایی را ارسال می کند.
بدون رعایت نکات بالا آپلود فایل کار نخواهد کرد.
فرم بالا داده ها را به سمت فایلی با نام upload.php ارسال
می نماید. در ضمن فرم دارای یک تگ <input> از نوع file است که کاربر
با کلیک روی دکمه Browse تصویر مورد نظر خود را انتخاب و توسط دکمه submit
به سمت سرور ارسال می کند.
ساخت فایل آپلود در PHP
فایل upload.php شامل کدهای زیر است:
- $upload_dir = "uploads/": تعیین کننده پوشه یا دایرکتوری محل ذخیره فایل است
- $upload_file: تعیین کننده مسیره ذخیره فایل است.
- $uploadOk: مقدار پیشفرض 1 دارد و اگر در هنگام آپلود فایل خطایی صورت گرفت مقدار آن برابر 0 می شود و سپس پیام اخطار نمایش داده میشود.
- $imageFileType: توسط تابع pathinfo پسوند فایل فرستاده شده را در خود ذخیره میکند.( حروف بزرگ به کوچک تبدیل می شوند)
سپس در ادامه بررسی می کنیم که فایل فرستاده شده تصویر واقعی است یا نوع دیگری
توجه داشته باشید بایستی یک پوشه با نام uploads جهت ذخیره تصاویر بسازید. نام این پوشه با مقدار $upload_dir برابر می کند.
بررسی موجود بودن فایل
حال می توانیم کمی محدودیت اعمال کنیم. در این قسمت بررسی
می کنیم که اگر فایل با این نام قبلا آپلود شده یک پیام خطا به کاربر نمایش
داده شود.
این کار توسط تابع file_exists() روی مسیر تعیین شده توسط $upload_file انجام می شود. این تابع موجودیت یک فایل را در مسیر داده شده بررسی می کند و مقدار true یا false را بر می گرداند.
بررسی اندازه فایل
حال بررسی می کنیم که اگر حجم فایل ارسال شده بیشتر از 500KB باشد پیام اخطار نمایش داده شود و مقدار $uploadOk نیز برابر 0 شود.
مقدار متغیر $imageFileType
برابر با پسوند فایل ارسال شده است. با استفاده از همین متغیر می توانیم
تعیین کنیم که فقط تصاویر با پسوندهای jpg,png,gif,jpeg می توانند آپلود
شوند.
تکمیل فایل upload.php
در نهایت مقدار $uploadOk را بررسی می کنیم. اگر 0 بود پیام خطای آپلود فایل به کاربر نمایش داده می شود. و اگر برابر با 1 بود توسط تابع move_uploaded_file()
تصویر مورد نظر را آپلود می کنیم. این تابع دو پارامتر اجباری دریافت می
کند. اولین پارامتر فایل آپلود شده در پوشه مقوت tmp سرور و دومین پارمتر
مسیر تعیین شده برای آپلود فایل روی سرور است.