
آموزش آپلود فایل در PHP به همراه مثال و نمونه کد
با استفاده از فیلم های آموزشی تولید شده توسط کلیک سایت، به راحتی می توانید آموزش آپلود فایل در PHP به همراه مثال و نمونه کد را آموزش ببینید. در ادامه دعوت می شود که فیلم دمو (بخش اول آموزش) را در زیر مشاهده نمایید.
در این آموزش ما توضیح می دهیم که ارسال فایل ها روی سرور کار بسیار آسانی است.اما همواره سادگی خطراتی را هم به دنبال خواهد داشت. بنابراین هنگام ارسال فایل ها بر روی سرور دقت لازم را داشته باشید تا فایل های مخرب یا حجیم روی سرور قرار نگیرد.
مرحله اول : تنظیم فایل "php.ini"
ابتدا مطمئن شوید، تنظیماتِ سرورِ php شما، طوری پیکربندی شده است که به شما اجازه آپلود فایل را می دهد. بدین منظور، در فایل «php.ini»، دستورالعمل file_uploads را جستجو کنید و مقدار آن را بر روی on قرار دهید:
file_uploads = On
مرحله دوم : ایجاد فرم Html
در مرحله بعد یک فایل Html ایجاد کنید تا یک کاربر بتواند یک فایل مانند عکس را انتخاب کرده و آپلود نماید. همانند کد فرم زیر:
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
برخی از قوانین زیر را برای ساخت فرم HTML باید درنظر بگیرید:
- مطمئن شوید،که فرم از method = "post" استفاده می کند
- همچنین فرم باید دارای ویژگی های(attribute) زیر باشد :
enctype="multiparty/form-data" این خاصیت، نوع محتوایِ(content-type) ارسالی را، بعد از کلیک روی دکمه submit تعیین می کند. بدون تنظیم موارد فوق، آپلودِ فایل کار نخواهد کرد.
موارد دیگر را نیز به خاطر بسپارید:
ویژگی type="file" را برای تگ <input> قرار دهید. این ویژگی باعث می شود تا این کنترل به شکل یک "دکمه یِ انتخابِ فایل" (file-select control) درآید، همراه با یک دکمه Browse جهت پیدا کردن فایل مورد نظر، که این دکمه کنار کنترل input قرار می گیرد.
فرم بالا، داده ها را به یک فایل با نام "upload.php" ارسال می کند،که بعداً آن را ایجاد خواهیم کرد.
مرحله سوم : تعیین اسکریپت لازم جهت آپلود فایل
فایل "upload.php" حاوی کد آپلود فایل می باشد،که در زیر، کدهای آن را مشاهده می کنید:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = 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;
}
}
?>
توضیح کد بالا بدین صورت می باشد :
$target_dir = "uploads/";
- پوشه ای که فایل آپلود شده در آن قرار می گیرد را مشخص می کند.
$target_file
- مسیر فایل ارسال شده را مشخص می کند.
$uploadOk=1
- هنوز استفاده نشده است (بعدا استفاده خواهد شد).
$imageFileType
- این متغیر، پسوند فایل آپلود شده را در خود نگه می دارد.
- در آخر هم چک کرده ایم که آیا فایل image یک فایل واقعی عکس است یا یک فایل جعلی می باشد و در صورت جعلی بودن باید از انجام عملیات آپلود جلوگیری کنیم.
نکته:
در مسیری که فایل upload.php وجود دارد، یک پوشه به نام "uploades" بسازید. فایل هایی که آپلود می کنیم در این پوشه ذخیره می شوند.
چک کردن این که فایل از قبل وجود داشته یا نه؟
اکنون باید برخی محدودیت ها را اضافه کنیم. ابتدا باید بررسی کنیم که آیا فایل در پوشه "uploads" وجود دارد یا خیر. اگر فایل وجود داشته باشد باید یک پیغام خطا برای کاربر نمایش داده شود و متغیر uploadOK را برابر صفر قرار می دهیم تا از آپلود فایل جلوگیری کنیم.
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
محدودیت اندازه فایل جهت آپلود
فیلد آپلود فایل(file input field) در فایل Html بالا، به نام "fileToUpload" نامیده می شود. اکنون ما می خواهیم اندازه فایل را بررسی کنیم. اگر فایل بزرگتر از 500 کیلوبایت باشد، یک پیغام خطا نمایش داده می شود و متغیر uploadOK را برابر با صفر قرار می دهیم تا از آپلود فایل جلوگیری کنیم.
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
محدود کردن نوع فایل جهت آپلود
کد زیر فقط اجازه می دهد تا کاربران فایل JPG، JPEG، PNG و GIF را آپلود کنند. و اگر نوع فایل دیگری به غیر از انواع تعیین شده باشد، برای کاربر پیغام خطا نمایش داده می شود و متغیر uploadOKرا برابر با صفر قرار می دهیم تا از آپلود فایل جلوگیری کنیم.
// 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;
}
مجموعه ی کدهای بالا برای آپلود فایل
فایل کامل "upload.php" به شکل زیر می باشد :
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = 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;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 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.";
}
}
?>
این فصل در یک نگاه:
در این مجموعه به ساخت سیستم نظردهی در php می پردازیم.…
بنا به درخواست یکی از کاربران گرامی سایت (امیر تجاره) طی چند مجموعه آموزشی قصد داریم نحوه ساخت و پیاده سازی سیستم ثبت نظرات و هم چنین نحوه ثبت پاسخ به هر نظر را مورد بررسی قرار دهیم. این مج…این فصل در یک نگاه:
در این مجموعه به آموزش ارسال ایمیل در phpmailer می پردازیم.یکی از مزایای phpmailer و ارسال ایمیل در php با استفاده از ph…
بی شک ارسال ایمیل php از مهم ترین توانایی های یک برنامه نویس php به شمار می رود. این ایمیل می تواند برای تبلیغات و یا اطلاع رسانی و موارد بسیار زیادی به کار رود. در php روش های مختلفی برای…این فصل در یک نگاه:
در این فصل به معرفی پایگاه داده می پردازیم و با مفهوم دیتابیس و پایگاه های داده آشنایی پیدا می کنیم.…
آیا اصلا من میتونم یک طراح سایت و برنامه نویس بشم؟ آیا یادگیری طراحی سایت سخته ؟ آیا باید حتما زبان انگلیسی رو مسلط باشم؟ آیا حتما نیاز هست که رشته کامپیوتر باشم ؟ آیا یادگیری برنامه نویسی …این فصل در یک نگاه:
در این فصل با زبان سمت سرور PHP آشنا می شویم و توابع و دستورات مهم این زبان برنامه نویسی را بررسی خواهیم کرد…
بنام خدا با سلام خدمت تمامی دوستان عزیز کلیک سایت. بسیار خرسندیم که با یک دوره پروژه محور دیگر در خدمت شما دوستان محترم هستیم که انشالله قرار است قدم بگذاریم به دنیای بسیار جذاب و مح…این فصل در یک نگاه:
در این فصل می آییم یک سایت بلاگ با cms اختصاصی را پیاده سازی می کنیم که هم مروری باشه برای زبان برنامه نویسی PHP و هم شم…
توجه: این دوره دائما توسط مهندس روشنایی (مدرس دوره) بروز گردیده و مطابق با آخرین استانداردهای برنامه نویسی آپدیت می شود. توجه فرمائید دریافت آپدیت ها برای خریداران قبلی رایگان می باشد و نیاز…این فصل در یک نگاه:
آشنایی با دستورات html ، css و js و انجام مینی پروژه سامانه نمرات دانش آموزان مدرسه آلفا…
توضیحات کلی مجموعه: در این دوره به مفاهیم و توابع php و mysql پرداخته شده و این دوره منتج به تولید یک پروژه بزرگ نخواهد شد در پایان این دوره یک مینی پروژه مثل سامانه کارنامه دانش آموزان مدر…این فصل در یک نگاه:
وب سایت فروشگاهی خود را بدون دانش برنامه نویسی و بدون پیش نیاز طراحی کنید.فروشگاه اینترنتی با افزونه ووکامرس که به شهرت …
راه اندازی فروشگاه اینترنتی در وردپرس با افزونه ووکامرس آموزش حرفه ای فروشگاه ساز وردپرس با افزونه ووکامرس آخرین باز تولید آموزش ویدیویی ووکامرس در 1396/11/15 صورت گرفت. …این فصل در یک نگاه:
…
سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…این فصل در یک نگاه:
آشنایی با امکانات جدید لاراول ۷…
برخی از سرفصل های این پکیج آموزشی : لاراول چیست و چرا ما لاراول استفاده میکنیم کامپوزر کارش چیه و نصب اون نصب لاراول آموزش نصب لاراول از طریق اینستالر آموزش نصب لاراول با استفاده ا…این فصل در یک نگاه:
داشتن یک اپلیکیشن موبایل برای وب سایت به برند سازی و اعتبار وب سایت بهبود و تسریع می بخشد لذا توصیه می شود با وجود همگان…
دوره آموزش طراحی و ساخت اپلیکیشن موبایل برای وب سایت قطعا شما هم دوست دارید برای وب سایت خود اپلیکیشن بسازید و پس از پیگیری متوجه شدید که هزینه ای بیش از 5.000.000 تومان باید پرداخت بکن…این فصل در یک نگاه:
در اصل فصل در مورد performance صحبت خواهیم کرد :-React Performance-Lazy-Error Boundaries و سایت را بر روی هاست واقعی قرا…
با سلام خدمت کلیک سایتی های عزیز، به دوره ی صفر تا صد طراحی سایت با react js خوش آمدید. نکته:این دوره کاملا پروژه محور میباشد نکته:این دوره هیچ پیش نیازی ندارد ReactJS چیست؟ ReactJS اس…این فصل در یک نگاه:
در این فصل(فصل یازدهم مجموعه)،به طراحی CMS (سیستم مدیریت محتوا)اختصاصی فروشگاه می پردازیم.هدف از طراحی این بخش،آنست که م…
در این مجموعه آموزشی قصد داریم از صفر تا صد طراحی یک فروشگاه اینترنتی رو به صورت کامل آموزش بدهیم.این فروشگاه شامل تمامی بخش های مورد نیاز یک فروشگاه اینترنتی است. هدف از این مجموعه،آموزش…این فصل در یک نگاه:
در بازاریابی نوین روش جدیدی ابداع شده که این روزا ها بسیار کسب و کارهای اینترنتی را با هزینه بسیار بسیار پایین و بازدهی …
توضیحات کلی مجموعه: (توجه: حتما با کلیک روی عکس این دوره آموزشی در بالا دمو را مشاهده کنید یا قسمت اول را رایگان دانلود کنید) در بازاریابی اینترنتی هر روز شاهد روش های جدید و استراتژی های ن…این فصل در یک نگاه:
طراحی پنل مدیریت(دسته بندی)- دسته بندی یا category - نمایش دسته های فرعی در view با ورود به یکی از دسته های اصلی و آشن…
توضیحات کلی مجموعه: این مجموعه توسط فریمورک محبوب و دوست داشتنی bootstrap و به صورت تضمینی و صفر تا صد جهت یادگیری کارآموزان عزیز ارائه گردیده و دوستانی که این دوره را به طور کامل و دقیق…این فصل در یک نگاه:
…
پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…این فصل در یک نگاه:
فصل پنجم…
توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…این فصل در یک نگاه:
ایجاد پروژه آژانس مسافرتی.....…
فصل اول: آشنایی با مبانی برنامه نویسی اندروید آشنایی با معماری برنامه های اندرویدی ساخت شبیه ساز جهت تست پروژه اندروید آشنایی با دستور Toast و حلقه for در برنامه های اندروی…این فصل در یک نگاه:
بهترین و پر بازده ترین روش تبدیل بازدیدکننده سایت به مشتری تبلیغات هدفمند و برند سازی هوشمندانه با ایمیل می باشد. ایمیل…
وبینار(سمینار آنلاین) آموزش تکنیک های ایمیل مارکتینگ اگر تا انتها این متن را مطالعه کنید نظر شما در مورد ایمیل مارکتینگ 180 درجه عوض می شود!! بر هیچکس پوشیده نیست که از سال 1972 که ای…این فصل در یک نگاه:
مباحث تکمیلی فریم ورک لاراول…
فصل اول :آموزش مقدماتی فریم ورک لاراول معرفی فریم ورک لاراول و پیشنیازهای انجام کار انجام کانفیگ های اولیه برای نصب و راه اندازی فریم ورک معرفی روش های نصب پروژه لاراولی از طریق سایت گی…این فصل در یک نگاه:
مباحث مقدماتی فریم ورک react.js…
توضیحات کلی مجموعه: فصل اول : آشنایی با مباحث مقدماتی فریم ورک react.js نصب و راه اندازی node.js و کلیه پیش نیازهای لازم نصب فریم ورک react روی لوکال و انجام تست های لازم آغاز آشنایی …