0

هیچ محصولی در سبد خرید نیست.

طراحی سایت در اصفهان, سئو سایت اصفهان, ساخت سایت اصفهان, طراحی سایت حرفه ای اصفهان, بهینه سازی سایت , بازاریابی و دیجیتال مارکتینگ 09133886881 احمدپور

آموزش آپلود فایل در php

نویسنده پشتیبانی وب یار
امتیاز مطلب
تعداد بازدید 1528
تاریخ بروزرسانی ۱۵ آذر ۱۳۹۹

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

معمولا در بعضی از سایت ها لازم می شود که فرمی را در سایت تعبیه نموده که توسط آن کاربران بتوانند فایل های مورد نظر خود را در سایت آپلود نمایند ( از جمله آپلود فایل رزومه ، عکس و…). حال قبل از آموزش آپلود فایل در php و کدنویسی فرم ارسال فایل لازم است که ابتدا مطمئن شوید که تنظیمات آن فعال است. برای این کار اول باید فایل php.ini را بررسی نمایید و file_uploads را به حالت on قرار دهید. روش دسترسی به فایل php.ini در لوکال هاست و cpanel در ادامه آموزش داده شده است.

 

آموزش آپلود فایل در phpآموزش آپلود فایل در php

 

Php.ini  در لوکال هاست (نرم افزار Xamp)

این فایل در وب سرور Xampp با توجه به نسخه های مختلف ، عموما در مسیر های زیر وجود دارد:

\xampp\php\php.ini
\xampp\apache\bin\php.ini
\xampp\etc\php.ini

 

php.ini در لوکال هاست

 

 

این قطعه کد ابتدا یک فرم آپلود ایجاد نموده و سپس اطلاعات موردنظر خود را به فایل upload.php می فرستد تا برروی آن اطلاعات را پردازش کند.

درون تگ input ، مشخصه type را برابر file قرار داده‌ایم تا اعلام کنیم که نوع ورودی، به صورت فایل می‌باشد. بنابراین درون فرم، یک دکمه browse به کاربر نمایش داده‌می‌شود تا با آن بتواند فایل موردنظر را از کامپیوتر خود انتخاب نماید.

upload file php

آموزش آپلود کردن فایل در فرم

 

کدنویسی قسمت php

فایل upload.php را ایجاد کنید و قطعه کد زیر را در آن قرار دهید.
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(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   مسیر فایل آپلود شده را مشخص می نماید.

$imageFileType پسوند فایل را نگه میدارد.

$_FILES[“fileToUpload”][“name”] نام اصلی فایل در سمت کاربر را در خود دارد.

$_FILES[“fileToUpload”][“size”]سایز فایل رابه بایت نمایش می دهد.

$_FILES[“fileToUpload”][“tmp_name”] نام فایل موقت را دارد.

البته باید دقت داشت که هنگامی که به کاربر اجازه می دهید فایلی را بر روی سرور سایت شما آپلود کند، عملا راهی برای نفوذ به سایت خود را در اختیار وی قرار داده اید. بنابراین برای جلوگیری از هک شدن سایت باید یک سری محدودیت هایی را برای آپلود فایل در php در نظر بگیرید.

 

امنیت در آپلود فایل در php

"امنیت

بررسی موجود بودن فایل از قبل

قاعدتا باید فایل آپلود شده توسط کاربر موجود باشد. قطعه کد زیر موجود بودن یا نبودن فایل را بررسی می نماید و در صورت موجود نبودن فایل به کاربر پیغام “فایل موجود نیست “را نمایش می دهد.
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}

محدود کردن سایز فایل

در کد زیر تعیین کرده ایم که اگر فایلی که کاربر آپلود می کند بیشتر از 300KB بود برای آن پیغام “فایل شما بزرگ است” را به نمایش در بیاورد.
// Check file size
if ($_FILES["fileToUpload"]["size"] > 300000) {echo "Sorry, your file is too large.";
$uploadOk = 0;
}

محدود کردن نوع فایل

در کد زیر بیان کرده ایم که اگر کاربر هر نوع فایلی به جز  GIF, JPG, JPEG, PNG را آپلود نمود برای او پیغام خطا نمایش داده شود.
// 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;
}

لذا کد کامل شده ی امنیت به صورت زیر می باشد.
$target_dir = "uploads/";
$target_file = $target_dir . basename( $_FILES["fileToUpload"]["name"] );
$uploadOk = 1;
$imageFileType = strtolower( 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 را دوچندان کرد. برای ایجاد کدهای کپچا در php و وردپرس پیشنهاد می کنیم که حتما مقالات مربوط به آن ها را در بخش آموزش کد کپچا در php و افزونه کد کپچا وردپرس مطالعه فرمایید.

 

نتیجه گیری

ما با این آموزش  قصد داشتیم که به شما آپلود فایل در php و راهکارهای امنیتی را نشان دهیم. از آنجایی که امنیت سایت با آپلود فایل ممکن است به خطر بیفتد باید فرم‌های آپلود خود را به یک تیم حرفه ایی و کاربلد بسپارید. تیم وب یار آماده‌ی هرگونه کمک رسانی به شما دوستان عزیز در زمینه‌ی طراحی وب سایت و سئو سایت است.

در اینستاگرام هم ما را دنبال کنید!

 

0/5 (0 Reviews)
مطالب مرتبط
ریچ اسنیپت چیست؟
مطالعه :

ریچ اسنیپت (Rich Snippets)  چیست؟     ریچ اسنیپت نوعی علامت گذاری ساختار یافته داده است که اپراتورهای سایت به کد HTML صفحات خود اضافه می کنند. هر بار که شما در گوگل جستجو می کنید ، یک دسته از نتایج جستجو نمایش داده می شود. یک نتیجه جستجوی معمول در گوگل شامل موارد زیر است: آدرس اینترنتی عنوان صفحه توضیحات متا ریچ اسنیپت، قطعه ای است که دارای اطلاعات اضافی مانند تصویر کوچک ، رتبه بندی و بررسی های کاربران می باشد. در واقع آن ها ، اطلاعات بیشتری در مورد نتیجه به کاربران می دهد که می تواند باعث افزایش اعتماد آن ها شود. به عنوان مثال ، اگر سایتی مربوط به دستور العمل های غذایی را اداره می کنید ، می توانید زمان پخت و پز ، رتبه بندی کاربر و یک تصویر کوچک را اضافه کنید تا نتایج جستجو بیشتر جذاب و قابل اعتماد باشد. از آنجا که ریچ اسنیپت ها  اطلاعات بیشتری را ارائه می دهند ، در مقایسه با سایر نتایج ، احتمالاً کاربران روی آن نتیجه کلیک می کنند. از این رو آن ها می توانند مستقیماً نرخ کلیک شما را افزایش دهند. استفاده از ریچ اسنیپت چه مزیت هایی دارد؟ موارد زیادی برای ورود وب سایت شما در صفحه اول گوگل و سایر موتورهای جستجو وجود دارد. بک لینک با کیفیت و محتوای […]

سئو محلی چیست ؟
مطالعه :

سئو محلی (local SEO) یک استراتژی بهینه سازی موتور جستجو (SEO) است که به دیده شدن تجارت شما در نتایج جستجوی محلی در گوگل کمک می کند. هر مشاغلی که دارای موقعیت فیزیکی یا منطقه جغرافیایی باشد می تواند از سئو محلی بهره مند شود. local SEO چگونه عمل می کند؟ در روزهای ابتدایی اینترنت ، تعداد نسبتاً کمی وب سایت وجود داشت ، بنابراین پیمایش در وب آسان بود. به محض اینکه اینترنت شروع به گسترش کرد ، موتورهای جستجو ایجاد شدند تا به کاربران اجازه دهند سایت های مورد نظر خود را با سهولت بیشتری پیدا کنند. پس از تجزیه و تحلیل رفتار کاربران در طی تریلیون جستجو ، گوگل دریافت که افرادی که به دنبال انواع خاصی از مشاغل هستند به نتایج نزدیک خود نیاز دارند. به همین دلیل الگوریتم جستجوی محلی گوگل دارای یک فاکتور مجاورت است . در واقع گوگل هنگام جستجوی کلمه کلیدی محلی موقعیت مکانی شما را در نظر می گیرد. این اتفاق می افتد حتی اگر کاربر نام شهر یا عبارت “نزدیک من” را در جستجوی خود وارد نکند. به عنوان مثال اگر در محل کار خود هستید و می خواهید برای ناهار یک پیتزا تحویل بگیرید ، لیستی از مکان های نزدیک دفتر شما را در صفحه نتایج نمایش می دهد. اما اگر همان جستجو را در خانه انجام دهید ، مجموعه […]

Ajax
مطالعه :

تا قبل از تکنولوژی ایجکس برای تغییر بخشی از صفحه نیاز به بارگذاری کل صفحه وب بود. اما بعد از ایجکس (Ajax) تبادل اطلاعات با سرور به حدی پیشرفت کرد که برای تغییر  قسمتهایی از صفحه وب دیگر نیازی به بارگذاری مجدد کل صفحه نبود. همراه ما باشید تا ساز و کار این تکنولوژی محبوب و کارآمد را با شما در میان بگذاریم.   ایجکس چیست؟ Ajax مخفف Asynchronous Javascript And Xml روشی است که با ترکیب جاوااسکریپت و Xml به سرور درخواستی برای بارگذاری بخشی از صفحه را می دهد. Google suggestion یکی از بهترین مثال ها برای تفهیم Ajax  است. هنگامی که شما درگوگل  عبارتی را تایپ می کنید گوگل در عرض چند میلی ثانیه به شما ادامه عبارت را پیشنهاد می‌کند. این سیستم از ajax پیشتیبانی می‌کند. در صورت عدم وجود ایجکس گوگل برای هر پیشنهاد مجبور به بارگذاری کل صفحه می شد!   سازوکار Ajax چگونه است؟ نحوه کار ajax به این صورت است که با ارسال داده ها به سرور و به کمک جاوااسکریپت شی xmlHttpRequest را می سازد. ویژگی این شی این است که به صورت مستقیم می‌تواند صفحات و یا وب سرویس ها را از سمت کاربر دریافت و به سمت سرور ارسال کند. به این صورت که درخواست‌ها از مرورگر می گیرد.و در سمت سرور پردازش و دوباره به مرورگر باز می‌گرداند. […]

دامین اتوریتی
مطالعه :

دامین اتوریتی (Domain Authority) یا همان اعتبار دامنه  که توسط سایت MOZ طراحی شده است، یک استاندارد جهانی برای اندازه گیری میزان قدرت دامنه سایت به نسبت رتبه بندی آن در صفحات نتایج موتور جستجو شده است و رتبه ی هر سایت در موتورهای جستجو را پیش بینی می کند. رنج اعداد دامین اتوریتی که به صورت فرمول لگاریتم محاسبه می شود بین ۱ تا ۱۰۰ است. و هرچه این عدد بیشتر باشد ملاکی است بر اعتبار بیشتر دامنه. با توجه به اهمیت بالای Domain Authority  در رتبه‌بندی سایت‌ها ، در اینجا به دلایل کاهش اعتبار دامنه اشاره خواهیم کرد.   دلایل کاهش اعتبار دامین اتوریتی یافتن علت دقیق برای کاهش دامین اتوریتی به نظر کاری دشوار است. اما می‌توان موارد زیر را از پاسخ های احتمالی این سوال دانست: بالا بودن spam score: MOZ در جدیدترین به روزرسانی های خود در کنار بررسی تعداد لینک ها به امتیاز spam score نیز توجه کرده و در صورت بالا بودن این امتیاز باید انتظار کاهش اعتبار دامین را داشت. ممکن است با وجود تعداد بالای بک لینک های خوب سایت تان اعتبار دامنه ی پایینی کسب کرده باشید که  علت این را می توان به مشاهده نشدن بک لینک هایتان در ربات های پایشی Mozscape  نسبت داد. بنا به نظریات راست جونز مدیرسایت MOZ ، این سایت سعی کرده است که […]

زمینه دلخواه چیست ؟
مطالعه :

در این مقاله در ابتدا با زمینه دلخواه در وردپرس آشنا شده و در پایان نحوه اضافه کردن آن به قالب وردپرس آموزش داده می شود. زمینه دلخواه چیست ؟     زمینه های دلخواه یا زمینه های سفارشی (Custom Fields) یک ویژگی در وردپرس است که به کاربران اجازه می دهد هنگام نوشتن یک پست اطلاعات بیشتری اضافه کنند. وردپرس این اطلاعات را به عنوان متا داده ذخیره می کند. برای مثال تصور کنید شما محتوایی در رابطه با یک کتاب نوشته و به نقد آن می پردازید. در پایان محتوا قصد دارید تعداد صفحات کتاب و یا قیمت کتاب را نیز بیان کنید. این اطلاعات اضافی را می توان به راحتی با Custom Fields یا همان زمینه های سفارشی وردپرس نمایش داد. لازم به ذکر است زمینه های سفارشی بصورت پیش فرض پنهان هستند و باید آن ها را فعال کنید که در ادامه به آن می پردازیم. آموزش اضافه کردن زمینه های سفارشی به قالب وردپرس برای استفاده از زمینه های دلخواه در وردپرس به هیچ افزونه ایی نیاز ندارید و تنها با اضافه کردن دو قطعه کد ساده می توانید از آن ها استفاده کنید. در ابتدا باید کد زیر را در فایلی که می خواهید زمینه دلخواه در آن جا نمایش داده شود اضافه کنید. به عنوان مثال قصد داریم قیمت کتاب را در صفحه single.php […]

همه چیز دربار فیگما
مطالعه :

در زمینه طراحی رابط کاربری نرم افزار های مختلفی وجود دارند که قبلا با آن ها آشنا شده اید در ادامه یه چند مورد خواهیم پرداخت. فیگما یکی از نرم افزار های رابط کاربری است که از آن برای طراحی رابط کاربری وب سایت ها و اپلیکیشن ها استفاده می شود.در این مقاله به بررسی همه چیز درباره فیگما می پردازیم. فیگما چیست؟ همان طور که گفته شد فیگما یک نرم افزار برای طراحی رابط کاربری می باشد. این نرم افزار به صورت یک وب اپ می باشد که در بروزر خود اجرا می کنید. بر خلاف تصور عموم یک وب اپ نمی تواند گرافیک یک وب سایت یا اپلیکیشن را به خوبی و با کیفیت عالی ارائه دهد. اما با رفتن به سایت figma و دیدن امکانات این سایت به این باور می رسید که فیگما ، یکی از قدرتمند ترین نرم افزار های طراحی رابط کاربری می باشد. طریقه دسترسی به نرم افزار فیگما: این نرم افزار را هم می توانید به صورت تحت وب باز و مرورگر خود باز کنید. فقز در هر دو صورت باید سیستم شما به اینترنت متصل باشد.     ویژگی ها: فیگما یک نرم افزار تحت وب گسترده می باشد که ویژگی های بسیار جذابی دارد.اکنون به چند ویژگی این اپلیکیشن بی نظیر اشاره می کنیم. قابلیت استفاده در همه سیستم عامل […]

دیدگاه ها

دیدگاهتان را بنویسید

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