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

آپلود تصویر با کد php

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

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

<?php
/**
* Create by Mojtaba hosseini
* URL : www.Nemayman.com/upload-picture-php-code
*/
if(isset($_POST["submit"])) {
	$target_dir = "uploads/";

	$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
	$uploadOk = 1;
	$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

	// چک کردن فایل مربوطه

	  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
	  if($check !== false) {
		echo "فایل یک تصویر است - " . $check["mime"] . ".";
		$uploadOk = 1;
	  } else {
		echo "فایل یک تصویر نیست.";
		$uploadOk = 0;
	  }

	// چک کردن اینکه فایل وجود داره یا نه
	if (file_exists($target_file)) {
	  echo "Sorry, file already exists."; 
	  $uploadOk = 0;
	}

	// سایز فایل چک میشه
	if ($_FILES["fileToUpload"]["size"] > 500000) {
	  echo "متاسفیم ، فایل شما بزرگ است.";
	  $uploadOk = 0;
	}

	// چک کردن فرمت فایل
	if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
	&& $imageFileType != "gif" ) {
	  echo "متاسفیم ، فقط پسوند های JPG, JPEG, PNG & GIF قابل انجام است.";
	  $uploadOk = 0;
	}

	// چک کردن اینکه داخل موارد قبلی خطایی بوده یا خیر
	if ($uploadOk == 0) {
	  echo "متاسفیم، فایل آپلود نشد.";
	// if everything is ok, try to upload file
	} else {
	  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
		echo "فایل ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " با موفقیت آپلود شد.";
	  } else {
		echo "متاسفیم ، خطایی در آپلود تصویر رخ داده است.";
	  }
	}
}
?>
<form action="" 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>

توضیحات کد آپلود تصویر درون سایت با php

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

توجه

لازم نیست که کدهای زیر را دوباره بردارید. همان کد بالا کافیست. کدهای پایین توضیحات هر بخش است.

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

$target_dir = "uploads/";

این خط می گوید که تصاویر در فولدری به نام uploads ذخیره شود. دقت کنید که این فولدر آپلود تصاویر را بسازید. اگر شما از وردپرس استفاده می کنید. برای اینکه درون پوشه اصلی خود وردپرس ذخیره کنید. قادرید آدرس زیر را بدهید.

$target_dir = "wp-content/uploads/uploads-file/";

در اینجا باید درون فولدر uploads وردپرس خود یک فولدر به نام uploads-file ایجاد کنید.

آیا فایل برای آپلود تصویر است یا خیر

آیا فایل برای آپلود تصویر است یا خیر
// چک کردن فایل مربوطه
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
	echo "فایل یک تصویر است - " . $check["mime"] . ".";
	$uploadOk = 1;
}else {
	echo "فایل یک تصویر نیست.";
	$uploadOk = 0;
}

در مرحله اول چک می شود که فایل مربوطه تصویر است یا خیر. این موضوع برای امنیت سایت شما بسیار مهم است. زیرا ربات ها اقدام به بارگذاری فایل های مخرب و هک وبسایت شما می نمایند.

فایل قبلا آپلود شده یا نه ؟

// چک کردن اینکه فایل وجود داره یا نه
if (file_exists($target_file)) {
	echo "متاسفیم ، فایل وجود دارد.";
	$uploadOk = 0;
}

این کد چک می کنه که فایل قبلا آپلود گردیده است یا خیر. این کار را بر اسام نام فایل می نماید. شاید کمی این موضوع منطقی نباشد و ممکن است چندین نفر با یک نام تصویر های خود را بارگذاری نمایند. برای همین کار با کد زیر را جایگذین آن به شما معرفی می نماییم. که در صورتیکه فایل با این نام وجود داشت. آن را تغییر نام میدهد و امکان آپلود ایجاد می گردد.

// چک کردن اینکه فایل وجود داره یا نه
if (file_exists($target_file)) {
	$i=1;
	while (file_exists($target_file) == 1) { // شرط برای تغییر نام فایل و آپلودش
		$target_file = $target_dir ."$i". basename($_FILES["fileToUpload"]["name"]);
		$i++;
	}
}

اگر هر دو کد را پاک کنید. ممکن است با آپلود تصویر جدید ، تصویر قدیم پاک شود.

چک کردن سایز تصویر در حال آپلود

// چک کردن سایز فایل
if ($_FILES["fileToUpload"]["size"] > 500000) {
	echo "متاسفیم ، فایل شما بزرگ است.";
	$uploadOk = 0;
}

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

عدد مربوط در این قسمت بر اساس باید می باشد.

  • هر 1024 باید 1 کیلوبایت است.
  • هر 1024 کیلوبایت 1 مگابایت است.

در نتیجه 500000 بالا تقسیم بر 2048 حدودا 244 می شود. پس کاربران شما قادرند فایل تا حدود 244 مگ آپلود نمایند. پیشنهاد می کنیم که برای امنیت این سایز را زیاد بالا نبرید.

تشخیص فرمت فایل آپلود شده با کد php

تشخیص فرمت فایل آپلود شده با کد php
// چک کردن فرمت فایل
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
	echo "متاسفیم ، فقط پسوند های JPG, JPEG, PNG & GIF قابل انجام است.";
	$uploadOk = 0;
}

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

  • JPG
  • JPEG
  • PNG
  • GIF

در صورتیکه غیر از پسوندهای فوق انتخاب گردد. پیغام و انجام فرآیند آپلود متوقف می شود.

بررسی خطاها و آپلود تصویر درون هاست

// چک کردن اینکه داخل موارد قبلی خطایی بوده یا خیر
if ($uploadOk == 0) {
	echo "متاسفیم، فایل آپلود نشد.";
// if everything is ok, try to upload file
} else {
	if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
		echo "فایل ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " با موفقیت آپلود شد.";
	} else {
		echo "متاسفیم ، خطایی در آپلود تصویر رخ داده است.";
	}
}

این مرحله چک می نماید که در مراحل قبلی خطایی بوده یا خیر. اگر خطایی نباشد اقدام به انتقال تصویر به درون هاست می نماید. در صورتیکه اینکار با موفقیت انجام شود یا نشود؛ به کاربر پیغام مورد نظر را صادر می نماید.

کد HTML آپلود تصویر

<form action="" method="post" enctype="multipart/form-data">
	Select image to upload:
	<input type="file" name="fileToUpload" id="fileToUpload">
	<input type="submit" value="آپلود تصویر" name="submit">
</form>

قبل از اینکه فرایند های بالا انجام گردد. کد HTML فوق به کاربر جهت انتخاب تصویر و دکمه آپلود تصویر را نمایش میدهد. بعد از انتخاب تصویر و کلیک بروی دکمه “آپلود تصویر” فرایند انتقال انجام می شود.

دانلود کد آپلود تصویر با php

برای انجام فرایند راحت تر ، ما فایل فوق را به صورت آماده برای شما جهت دانلود قرار میدهیم. اینگونه شما بدون اشتباه و به راحتی قادرید از لینک زیر آن را دانلود و استفاده نمایید.

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

کد آپلود تصویر در وردپرس

اگر قصد دارید که کد فوق را درون یک صفحه از وبسایت خود در وردپرس ایجاد نمایید. دو راه وجود دارد.

  • اول اینکه کل کد فوق را درون کدهای صفحه مربوطه وارد نمایید.
  • دوم اینکه اگر قصد دارید ، صفحه فوق به صورت مجزا نمایش دهد و حتی متن هایی به آن اضافه کنید.

بر اینجام فرایند دوم موارد زیر را انجام دهید.

1- فایل زیر را دانلود کنید

هر دو فایل مذکور یکی هست، فقط یک خط زیر به اولین خط در فایل وردپرس اضافه گردیده است.

/*template name: uploadimage*/

2- فایل دانلود شده را درون پوشه پوسته سایت آپلود کنید

فایل مذکور را به پوسته خود اضافه کنید. wp-content/themes/ و فولدر پوسته وارد شوید و فایل را آنجا آپلود کنید.

3- ایجاد صفحه درون وردپرس

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

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