رفتن به مطلب

کد PHP آپلود عکس کاربران وردپرس


پست های پیشنهاد شده

با سلام

یک کد PHP برای اپلود عکس داریم که به صورت زیر است ولی آپلود انجام نمیشه. ممنون میشم که راهنمایی کنید که مشکلش را حل کنم.

            global $user,$wpdb,$blog_id;
            if(isset($_POST["upload"])) {
	        	$target_dir = ABSPATH."wp-content/uploads/avatar/".date('yy').'/';
	        	$format = explode('.', $_FILES["simple_local_avatar"]["name"])[1];
				$target_file = $target_dir . $id . '.' . $format;
				$uploadOk = 1;
				$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
				list($width, $height, $type, $attr) = getimagesize( $_FILES["simple_local_avatar"]['tmp_name'] );
				$check = getimagesize($_FILES["simple_local_avatar"]["tmp_name"]);
				// Check if image file is a actual image or fake image
				
				    

				    if($check !== false) {
				        // echo "File is an image - " . $check["mime"] . ".";
				        $uploadOk = 1;

				    } else {
				        echo "فایل عکس نیست.";
				        $uploadOk = 0;
				    }
				// print_r($check['mime']);
				// Check if file already exists
				if (file_exists($target_file)) {
				    // echo "Sorry, file already exists.";
				    // $uploadOk = 0;
				}
				if (!file_exists(ABSPATH."wp-content/uploads/avatar")) {
					 mkdir( ABSPATH."wp-content/uploads/avatar" );
				}
				if (!file_exists(ABSPATH."wp-content/uploads/avatar/".date('yy'))) {
					 mkdir( ABSPATH."wp-content/uploads/avatar/".date('yy') );
				}
				// Check file size
				if ($_FILES["simple_local_avatar"]["size"] >= 20000) {
				    echo "متاسفانه حجم عکس شما بیش از 20 کیلوبایت است.</br>";
				    $uploadOk = 0;
				}
				// Allow certain file formats
				if( $check['mime'] != "image/jpeg" && $check['mime'] != "image/png" ) {
				    echo "فقط فرمت های jpeg و png مورد قبول است.</br>";
				    $uploadOk = 0;
				}
				if ( $width > 160 || $height > 160 ) {
					echo "لطفا سایز عکس 160 در 160 پیکسل باشد.</br>";
				    $uploadOk = 0;
				}
				// Check if $uploadOk is set to 0 by an error
				if ($uploadOk == 0) {
				    echo "متاسفانه عکس شما آپلود نشد.</br>";
				// if everything is ok, try to upload file
				} else {
				    if (move_uploaded_file($_FILES["simple_local_avatar"]["tmp_name"], $target_file)) {
				    // echo "The file ". basename( $_FILES["simple_local_avatar"]["name"]). " has been uploaded.";
				    	$img_url = site_url() . '/wp-content/uploads/avatar/'.date('yy') . '/'. $id . '.' . $format;
				    	$data = array(
		    					"media_id" 	=> "",
		    					"full" 		=> $img_url,
		    					"192" 		=> $img_url,
		    					"96" 		=> $img_url,
		    					"128" 		=> $img_url,
		    					"64" 		=> $img_url,
		    					"52" 		=> $img_url,
		    					"26" 		=> $img_url
				    	);
				    	// $data = serialize($data);
				    	update_user_meta($id,'simple_local_avatar',$data);
				    	
				} else {
				    echo "متاسفانه در هنگام آپلود عکس خطایی رخ داده است.</br>";
				    }
				}
			}
            ?>

کد اسکریپت:

			<script type="text/javascript">
				var $ = jQuery;
				function readURL(input) {
				  if (input.files && input.files[0]) {
				    var reader = new FileReader();
				    
				    reader.onload = function(e) {
				      $('#avatar-image-url').attr('src', e.target.result);
				      $('.save').css('display','block');
				      $('.edit').css('display','none');
				    }
				    
				    reader.readAsDataURL(input.files[0]); // convert to base64 string
				  }
				}

				$("#avatar-image-url-input").change(function() {
				  readURL(this);
				});
			</script>

و اخرین کد که خروجیش در ابزارک سایت نمایش داده شده است:

						<form method="post" action="" enctype="multipart/form-data">
							
							
						    <div class="upload-area">
							    <?php
							    	
							    	if (!isset(get_user_meta($id, 'simple_local_avatar', true)['full']) && empty(get_user_meta($id, 'simple_local_avatar', true)['full'])) {
							    		$avatar = 'https://secure.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=64';
							    	}
							    	else{
							    		$avatar = get_user_meta($id, 'simple_local_avatar', true)['full'];
							    	}
							    	if ( isset($avatar['full']) && !empty($avatar['full']) ) {
							    		echo '<button type="submit" class="delete" name="delete_user_avatar" value="'.$avatar.'">Delete</button>';
							    	}?>

						    	<div class="edit" id="edit-avatar" style="">Edit</div>
							    <img src="https://en.acgih.ir/wp-content/plugins/bitpay-vip-wordpress/images/avatar-enacgih.png" id="avatar-image-url">
							    <div class="upload-avatar-help">
							    	حداکثر حجم عکس: 20Kb <br>
								حداکثر سایز عکس: 160 در 160 px<br>
								فرمت: jpg, png
							    </div>
							    <input id="avatar-image-url-input" type="file" name="simple_local_avatar" accept="image/png, image/jpg" value="">
						    </div>
						    <button type="submit" class="save" id="save-avatar" name="upload">Save</button>
						</form>

 برای عکسی که میخام اپلود بشه چند شرط گذاشتیم که مثلا فرمت JPG یا PNG باشه، حجمش کمتر از 20KB باشه، سایز عکس 160*160 باشه. در مسیر uploads/avatar/2020 ذخیزه بشه.

این چهار ویژگی اصلی رو میخواهیم پیاده کنیم.

لینک به ارسال
در 12 دقیقه قبل، sir1 گفته است :

با سلام

یک کد PHP برای اپلود عکس داریم که به صورت زیر است ولی آپلود انجام نمیشه. ممنون میشم که راهنمایی کنید که مشکلش را حل کنم.


            global $user,$wpdb,$blog_id;
            if(isset($_POST["upload"])) {
	        	$target_dir = ABSPATH."wp-content/uploads/avatar/".date('yy').'/';
	        	$format = explode('.', $_FILES["simple_local_avatar"]["name"])[1];
				$target_file = $target_dir . $id . '.' . $format;
				$uploadOk = 1;
				$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
				list($width, $height, $type, $attr) = getimagesize( $_FILES["simple_local_avatar"]['tmp_name'] );
				$check = getimagesize($_FILES["simple_local_avatar"]["tmp_name"]);
				// Check if image file is a actual image or fake image
				
				    

				    if($check !== false) {
				        // echo "File is an image - " . $check["mime"] . ".";
				        $uploadOk = 1;

				    } else {
				        echo "فایل عکس نیست.";
				        $uploadOk = 0;
				    }
				// print_r($check['mime']);
				// Check if file already exists
				if (file_exists($target_file)) {
				    // echo "Sorry, file already exists.";
				    // $uploadOk = 0;
				}
				if (!file_exists(ABSPATH."wp-content/uploads/avatar")) {
					 mkdir( ABSPATH."wp-content/uploads/avatar" );
				}
				if (!file_exists(ABSPATH."wp-content/uploads/avatar/".date('yy'))) {
					 mkdir( ABSPATH."wp-content/uploads/avatar/".date('yy') );
				}
				// Check file size
				if ($_FILES["simple_local_avatar"]["size"] >= 20000) {
				    echo "متاسفانه حجم عکس شما بیش از 20 کیلوبایت است.</br>";
				    $uploadOk = 0;
				}
				// Allow certain file formats
				if( $check['mime'] != "image/jpeg" && $check['mime'] != "image/png" ) {
				    echo "فقط فرمت های jpeg و png مورد قبول است.</br>";
				    $uploadOk = 0;
				}
				if ( $width > 160 || $height > 160 ) {
					echo "لطفا سایز عکس 160 در 160 پیکسل باشد.</br>";
				    $uploadOk = 0;
				}
				// Check if $uploadOk is set to 0 by an error
				if ($uploadOk == 0) {
				    echo "متاسفانه عکس شما آپلود نشد.</br>";
				// if everything is ok, try to upload file
				} else {
				    if (move_uploaded_file($_FILES["simple_local_avatar"]["tmp_name"], $target_file)) {
				    // echo "The file ". basename( $_FILES["simple_local_avatar"]["name"]). " has been uploaded.";
				    	$img_url = site_url() . '/wp-content/uploads/avatar/'.date('yy') . '/'. $id . '.' . $format;
				    	$data = array(
		    					"media_id" 	=> "",
		    					"full" 		=> $img_url,
		    					"192" 		=> $img_url,
		    					"96" 		=> $img_url,
		    					"128" 		=> $img_url,
		    					"64" 		=> $img_url,
		    					"52" 		=> $img_url,
		    					"26" 		=> $img_url
				    	);
				    	// $data = serialize($data);
				    	update_user_meta($id,'simple_local_avatar',$data);
				    	
				} else {
				    echo "متاسفانه در هنگام آپلود عکس خطایی رخ داده است.</br>";
				    }
				}
			}
            ?>

کد اسکریپت:


			<script type="text/javascript">
				var $ = jQuery;
				function readURL(input) {
				  if (input.files && input.files[0]) {
				    var reader = new FileReader();
				    
				    reader.onload = function(e) {
				      $('#avatar-image-url').attr('src', e.target.result);
				      $('.save').css('display','block');
				      $('.edit').css('display','none');
				    }
				    
				    reader.readAsDataURL(input.files[0]); // convert to base64 string
				  }
				}

				$("#avatar-image-url-input").change(function() {
				  readURL(this);
				});
			</script>

و اخرین کد که خروجیش در ابزارک سایت نمایش داده شده است:


						<form method="post" action="" enctype="multipart/form-data">
							
							
						    <div class="upload-area">
							    <?php
							    	
							    	if (!isset(get_user_meta($id, 'simple_local_avatar', true)['full']) && empty(get_user_meta($id, 'simple_local_avatar', true)['full'])) {
							    		$avatar = 'https://secure.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=64';
							    	}
							    	else{
							    		$avatar = get_user_meta($id, 'simple_local_avatar', true)['full'];
							    	}
							    	if ( isset($avatar['full']) && !empty($avatar['full']) ) {
							    		echo '<button type="submit" class="delete" name="delete_user_avatar" value="'.$avatar.'">Delete</button>';
							    	}?>

						    	<div class="edit" id="edit-avatar" style="">Edit</div>
							    <img src="https://en.acgih.ir/wp-content/plugins/bitpay-vip-wordpress/images/avatar-enacgih.png" id="avatar-image-url">
							    <div class="upload-avatar-help">
							    	حداکثر حجم عکس: 20Kb <br>
								حداکثر سایز عکس: 160 در 160 px<br>
								فرمت: jpg, png
							    </div>
							    <input id="avatar-image-url-input" type="file" name="simple_local_avatar" accept="image/png, image/jpg" value="">
						    </div>
						    <button type="submit" class="save" id="save-avatar" name="upload">Save</button>
						</form>

 برای عکسی که میخام اپلود بشه چند شرط گذاشتیم که مثلا فرمت JPG یا PNG باشه، حجمش کمتر از 20KB باشه، سایز عکس 160*160 باشه. در مسیر uploads/avatar/2020 ذخیزه بشه.

این چهار ویژگی اصلی رو میخواهیم پیاده کنیم.

سلام من از این کد استفاده میکنم مشکلی نداره

php

$target_dir = "uploads/";

2 $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

3 $uploadOk = 1;

4 $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

5 // Check if image file is a actual image or fake image

6 if(isset($_POST["submit"])) {

7 $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);

8 if($check !== false) {

9 echo "File is an image - " . $check["mime"] . ".";

10 $uploadOk = 1;

11 } else {

12 echo "File is not an image.";

13 $uploadOk = 0;

14 }

15 }

برسی وجود فایل

// Check if file already exists

2 if (file_exists($target_file)) {

3 echo "Sorry, file already exists.";

4 $uploadOk = 0;

5 }

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

// Check file size

2 if ($_FILES["fileToUpload"]["size"] > 500000) {

3 echo "Sorry, your file is too large.";

4 $uploadOk = 0;

5 }

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

// Allow certain file formats

2 if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"

3 && $imageFileType != "gif" ) {

4 echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";

5 $uploadOk = 0;

6 }

 

لینک به ارسال

کد کامل

  • $target_dir = "uploads/";
  • 2 $target_file = $target_dir . basename( $_FILES["fileToUpload"]["name"] );
  • 3 $uploadOk = 1;
  • 4 $imageFileType = strtolower( pathinfo( $target_file, PATHINFO_EXTENSION ) );
  • 5
  • 6 // Check if image file is a actual image or fake image
  • 7 if ( isset( $_POST["submit"] ) ) {
  • 8 $check = getimagesize( $_FILES["fileToUpload"]["tmp_name"] );
  • 9 if ( $check !== false ) {
  • 10 echo "File is an image - " . $check["mime"] . ".";
  • 11 $uploadOk = 1;
  • 12 } else {
  • 13 echo "File is not an image.";
  • 14 $uploadOk = 0;
  • 15 }
  • 16 }
  • 17
  • 18 // Check if file already exists
  • 19 if ( file_exists( $target_file ) ) {
  • 20 echo "Sorry, file already exists.";
  • 21 $uploadOk = 0;
  • 22 }
  • 23
  • 24 // Check file size
  • 25 if ( $_FILES["fileToUpload"]["size"] > 500000 ) {
  • 26 echo "Sorry, your file is too large.";
  • 27 $uploadOk = 0;
  • 28 }
  • 29
  • 30 // Allow certain file formats
  • 31 if ( $imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
  • 32 && $imageFileType != "gif" ) {
  • 33 echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  • 34 $uploadOk = 0;
  • 35 }
  • 36
  • 37 // Check if $uploadOk is set to 0 by an error
  • 38 if ( $uploadOk == 0 ) {
  • 39 echo "Sorry, your file was not uploaded.";
  • 40
  • 41 // if everything is ok, try to upload file
  • 42 } else {
  • 43 if ( move_uploaded_file( $_FILES["fileToUpload"]["tmp_name"], $target_file ) ) {
  • 44 echo "The file " . basename( $_FILES["fileToUpload"]["name"] ) . " has been uploaded.";
  • 45 } else {
  • 46 echo "Sorry, there was an error uploading your file.";
  • 47 }
  • 48 }
لینک به ارسال
در 17 دقیقه قبل، amirali ghorbani گفته است :

کد کامل

  • $target_dir = "uploads/";
  • 2 $target_file = $target_dir . basename( $_FILES["fileToUpload"]["name"] );
  • 3 $uploadOk = 1;
  • 4 $imageFileType = strtolower( pathinfo( $target_file, PATHINFO_EXTENSION ) );
  • 5
  • 6 // Check if image file is a actual image or fake image
  • 7 if ( isset( $_POST["submit"] ) ) {
  • 8 $check = getimagesize( $_FILES["fileToUpload"]["tmp_name"] );
  • 9 if ( $check !== false ) {
  • 10 echo "File is an image - " . $check["mime"] . ".";
  • 11 $uploadOk = 1;
  • 12 } else {
  • 13 echo "File is not an image.";
  • 14 $uploadOk = 0;
  • 15 }
  • 16 }
  • 17
  • 18 // Check if file already exists
  • 19 if ( file_exists( $target_file ) ) {
  • 20 echo "Sorry, file already exists.";
  • 21 $uploadOk = 0;
  • 22 }
  • 23
  • 24 // Check file size
  • 25 if ( $_FILES["fileToUpload"]["size"] > 500000 ) {
  • 26 echo "Sorry, your file is too large.";
  • 27 $uploadOk = 0;
  • 28 }
  • 29
  • 30 // Allow certain file formats
  • 31 if ( $imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
  • 32 && $imageFileType != "gif" ) {
  • 33 echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  • 34 $uploadOk = 0;
  • 35 }
  • 36
  • 37 // Check if $uploadOk is set to 0 by an error
  • 38 if ( $uploadOk == 0 ) {
  • 39 echo "Sorry, your file was not uploaded.";
  • 40
  • 41 // if everything is ok, try to upload file
  • 42 } else {
  • 43 if ( move_uploaded_file( $_FILES["fileToUpload"]["tmp_name"], $target_file ) ) {
  • 44 echo "The file " . basename( $_FILES["fileToUpload"]["name"] ) . " has been uploaded.";
  • 45 } else {
  • 46 echo "Sorry, there was an error uploading your file.";
  • 47 }
  • 48 }

درسته این کد و برای 3wschool است ولی کد اخری که گذاشتم باید متناسب با این کد تغییر کنه تا کامل بشه و در سایت کارکنه.

 

لینک به ارسال

دوستان لطفا کمک کنید این مورد را درست کنم.

کد اول را که طبق w3 درست کردم حالا اون کد سوم که در سایت نمایش داده میشه را چطوری درست کردم.

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

اگر هزینه هم داشته باشه مشکلی نیست پرداخت میکنم.

یک فایل js هم نوشته شده که پیوست کردم.

upload-avatar.js

ویرایش شده توسط sir1
لینک به ارسال

برای اخرین بار این تاپیک را بالا میاورم. لطفا دوستان کمک کنید.برای اخرین بار این تاپیک را بالا میاورم. لطفا دوستان کمک کنید.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...