Php dapatkan lebar dan tinggi gambar saat diunggah

Posting ini untuk pengembang yang ingin tahu cara memvalidasi ukuran dan jenis gambar dalam PHP. Artikel ini akan menunjukkan kepada Anda dasar-dasar apa yang perlu kita lakukan dan bagaimana kita dapat menggunakan fungsi seperti

<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>
3 untuk mendapatkan dimensi gambar di PHP dan
<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>
4

Penting bahwa gambar Anda memiliki ukuran yang tepat, jika tidak, gambar tersebut mungkin tidak dimuat dengan benar atau digunakan sebagaimana mestinya. Anda juga ingin mereka diformat dengan benar sehingga tidak tampak buram di perangkat lain. Kami akan membahas kedua hal ini di postingan blog ini. Jika Anda hanya mencari satu cara untuk memvalidasi gambar, inilah dia. Baca di bawah untuk mengetahui lebih lanjut tentang metode favorit kami

ISI

Skrip upload gambar dasar

Pertama, Anda perlu membuat formulir pengunggahan gambar sederhana dalam HTML. Berikut adalah struktur dasar dengan Bootstrap 4. Anda dapat menggunakan gaya Anda sendiri sesuai kebutuhan Anda

<!doctype html>
<html lang="en">
	<head>
		<!-- Required meta tags -->
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

		<!-- Bootstrap CSS -->
		<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">

		<title>PHP Image Upload with Size and Type Validation</title>
	</head>
	<body>
		<div class="container mt-5">
			<div class="row d-flex align-items-center justify-content-center">
				<div class="col-md-8">
					<fieldset class="border p-4">
						<legend  class="float-none w-auto p-2">PHP Image Upload with Size and Type Validation</legend>
						<form action="index.php" method="post" enctype="multipart/form-data">
							<div class="form-group">
								<abel for="logo">Choose Image file:</label>
								<input type="file" class="form-control-file" id="logo" name="logo">
							</div>
							<button type="submit" name="upload" class="btn btn-success mb-2 float-right">Upload</button>
						</form>
					</fieldset>
				</div>
			</div>
		</div>
		<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
  </body>
</html>

Ini adalah skrip upload gambar dasar tanpa validasi apa pun di PHP

<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>

Bagaimana cara menggunakan berbagai jenis fungsi validasi unggahan gambar PHP?

Jadi, contoh di atas adalah contoh dasar. Sekarang kita akan memvalidasi ukuran dan jenis gambar. Kami akan melihat setiap proses validasi langkah demi langkah dan membuat kode akhir dengan menggabungkan semua proses validasi di bagian akhir

Bagaimana memvalidasi input file untuk memeriksa apakah tidak kosong?

Pertama-tama kita harus memeriksa apakah input file tidak kosong. Untuk melakukannya ikuti kode di bawah ini

<?php
    if ( file_exists($_FILES["logo"]["tmp_name"]) ) {
         
         //if input is not blank, do upload part

    }
_

Dengan menggunakan fungsi

<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>
5, kita akan memeriksa apakah ada file sementara

Bagaimana cara memvalidasi ekstensi gambar di PHP?

Untuk menghindari kesalahan saat mengunggah file dengan ekstensi yang salah, Anda perlu memvalidasi jenis gambar terlebih dahulu. Kita dapat dengan mudah memeriksanya dengan menggunakan fungsi

<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>
6 seperti ini

<?php
        //store allowed extension
        $allowed_ext = array(
			"jpg",
			"jpeg",
			"png",
			"gif"
		);
		
		//get file extension
		$file_ext = strtolower( pathinfo($_FILES["logo"]["name"], PATHINFO_EXTENSION) );
		
		if ( in_array($file_ext, $allowed_ext)) {
			
			//do upload part
			echo $file_ext;

		}else{
			
			//wrong image type
			
		}

Pada contoh di atas, kita telah mendefinisikan array i. e.

<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>
7 yang akan menyimpan semua ekstensi yang diizinkan. Sekarang menggunakan
<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>
6 dan
<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>
9 kita akan mendapatkan ekstensi dari file yang diunggah

Di sini kita menggunakan fungsi

<?php
    if ( file_exists($_FILES["logo"]["tmp_name"]) ) {
         
         //if input is not blank, do upload part

    }
_0 untuk mengubah ekstensi menjadi huruf kecil. Ini karena jika ekstensi file yang diunggah dalam huruf besar, itu tidak akan cocok dengan fungsi
<?php
    if ( file_exists($_FILES["logo"]["tmp_name"]) ) {
         
         //if input is not blank, do upload part

    }
1

Bagaimana cara memvalidasi tipe gambar di PHP?

Tidak mungkin untuk memahami jenis file hanya dengan memeriksa ekstensinya. Jika seseorang mengganti nama ekstensi file

<?php
    if ( file_exists($_FILES["logo"]["tmp_name"]) ) {
         
         //if input is not blank, do upload part

    }
_2 menjadi
<?php
    if ( file_exists($_FILES["logo"]["tmp_name"]) ) {
         
         //if input is not blank, do upload part

    }
3, tidak mungkin memvalidasinya dengan kode di atas. Jadi dalam proses validasi ini, kita akan memeriksa tipe gambar

<?php
        //list of all allowed image types
        $allowed_types = array(
			"image/gif",
			"image/jpeg",
			"image/pjpeg",
			"image/jpeg", 
			"image/pjpeg",
			"image/png",
			"image/x-png"
		);
		
		//get file type
		$file_type = mime_content_type($_FILES['logo']['tmp_name']);

		if ( in_array($file_type, $allowed_types)) {
			
			//do upload part
			
		}else{
			
			//wrong image type
			
		}

Dalam contoh di atas, saya telah menetapkan berbagai jenis gambar MIME yang diizinkan. Fungsi mime_content_type() mengembalikan tipe konten MIME dari gambar yang diunggah

Jika Anda mengubah ekstensi file non-gambar menjadi. jpg, skrip di atas akan mendeteksi jenis file asli, dan bergantung pada jenis file yang diizinkan, skrip akan berfungsi sesuai kondisi

Bagaimana cara memvalidasi ukuran Gambar di PHP?

Sering kita lihat, ada beberapa batasan dalam hal mengunggah gambar, misalnya gambar harus dalam 2MB atau ukuran gambar harus dalam 150kb. Tapi bagaimana melakukan ini. Nah, periksa kode di bawah ini

<?php
		$file_size = $_FILES["logo"]["size"];
		
		//image size should be in 150kb
		if ($file_size <= 150000) {
			
			//do upload part
			
		}else{
			
			//wrong image type
			
		}

Dalam contoh di atas, saya telah mengatur ukuran file maksimum menjadi 150kb. Sekarang ubah 150kb menjadi byte. Hasilnya akan menjadi 150000 byte. Jika Anda juga menginginkan ukuran gambar di bawah 2MB, Anda harus menulis 2000000 .

Bagaimana cara memvalidasi dimensi Gambar di PHP?

Misalnya, Anda ingin ukuran gambar antara 800×600. Jadi, Anda dapat menggunakan kode di bawah ini untuk memeriksa apakah dimensi gambar valid atau tidak

<?php
	if (isset($_POST["upload"])) {
		
		$image_file = @getimagesize($_FILES["logo"]["tmp_name"]);
		$width = $image_file[0];
		$height = $image_file[1];
		
		if ($width <= "800" || $height <= "600") {
			
			//do upload part
			
		}else{
			
			//wrong image type
			
		}

Fungsi getimagesize() akan mengembalikan dimensi gambar apa pun. Jika Anda perhatikan, saya telah menggunakan simbol “@” di depan fungsi itu. Artinya, itu akan menekan pesan kesalahan yang dilemparkan oleh fungsi itu

Sekarang dapatkan lebar dan tinggi dari array

<?php
    if ( file_exists($_FILES["logo"]["tmp_name"]) ) {
         
         //if input is not blank, do upload part

    }
_4 dan periksa apakah dimensi file berada dalam 800×600

Bagaimana cara menampilkan pesan validasi gambar?

Sekarang kami memiliki semua jenis proses validasi. Sekarang kita akan melihat bagaimana menampilkan pesan validasi untuk setiap validasi

Di sini kita akan membuat objek array bernama $status dengan dua kunci i. e. jenis dan pesan

$status = array(
	"type" => "alert-danger",
	"message" => "Image size should be within 150kb."
);


$status = array(
	"type" => "alert-success",
	"message" => "Image successfully uploaded."
);

Di sini saya telah menulis alert-danger dan alert-success sebagai nilai tipe. Karena kami menggunakan Bootstrap 4, ini akan membantu untuk menampilkan kotak peringatan. Mari kita tampilkan pesan kesalahan

<?php if(!empty($status)) { ?>
<div class="alert text-center <?php echo $status['type'];?>" role="alert">
<?php echo $status['message'];?>
</div>
<?php } ?>

Bagaimana cara menampilkan pesan kesalahan post_max_size?

Setiap server memiliki batas upload file tertentu. Sering diamati bahwa jika ukuran file gambar melebihi batas upload file di php. ini, maka tidak ada pesan error yang ditampilkan. Jadi, pengguna kesulitan memahami di mana masalah sebenarnya?

Di sini kami akan memeriksa apakah ada masalah batas unggahan dengan menggunakan kode di bawah ini

<?php
if(
	isset( $_SERVER['REQUEST_METHOD'] )      &&
	($_SERVER['REQUEST_METHOD'] === 'POST' ) &&
	isset( $_SERVER['CONTENT_LENGTH'] )      &&
	( empty( $_POST ) )
){
	$max_post_size = ini_get('post_max_size');
	$content_length = $_SERVER['CONTENT_LENGTH'] / 1024 / 1024;
	if ($content_length > $max_post_size ) {
		$status = array(
			"type" => "alert-danger",
			"message" => sprintf(
				'It appears you tried to upload %d MiB of data but the PHP post_max_size is %d MiB.',
				$content_length,
				$max_post_size
			) .
			'Try increasing the post_max_size setting in your php.ini file.'
		);
		
	}
}

Kode di atas akan memeriksa apakah

<?php
    if ( file_exists($_FILES["logo"]["tmp_name"]) ) {
         
         //if input is not blank, do upload part

    }
_5 adalah POST dan juga memeriksa content_length telah ditetapkan i. e.
<?php
    if ( file_exists($_FILES["logo"]["tmp_name"]) ) {
         
         //if input is not blank, do upload part

    }
_6. Terakhir, periksa apakah $_POST kosong

Sekarang gabungkan semua fungsi untuk membuat skrip validasi gambar yang berfungsi. Berikut kode lengkapnya di bawah ini

<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>
0

Bagaimana cara memeriksa lebar dan tinggi gambar sebelum mengunggah di PHP?

Bahasa Sisi Server PHP. Jadi setelah mengirimkan formulir, gambar diunggah ke server sebagai file sementara. Setelah diunggah, file disimpan di lokasi tertentu setelah menyelesaikan berbagai validasi

Jadi tidak mungkin mendapatkan ukuran file gambar itu dengan cara apa pun dengan PHP tanpa mengunggahnya ke server. Setelah mengirimkan formulir Anda harus menunggu hingga file diunggah ke server sebagai file sementara dan kemudian Anda bisa mendapatkan ukuran seperti di bawah ini

<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>
_1

Tetapi dimungkinkan untuk memeriksa lebar dan tinggi gambar sebelum mengunggah menggunakan jQuery

Bagaimana cara memvalidasi tinggi gambar, lebar sebelum mengunggah menggunakan jQuery?

Anda dapat memeriksa tinggi dan lebar gambar sebelum mengunggah menggunakan jQuery. Mari kita periksa kodenya

<?php
	if (isset($_POST["upload"])) {
		
		$location = "image/" . basename($_FILES["logo"]["name"]);
		
        if( move_uploaded_file($_FILES["logo"]["tmp_name"], $location)) {
            
			echo "Image uploaded successfully.";
        }
		
	}
?>
_2

Pada contoh di atas, Anda dapat memeriksa setelah memilih gambar kita membuat objek gambar dan juga mengatur tinggi dan lebar maksimum gambar. Sekarang pada acara onload, dapatkan tinggi dan lebar gambar

Setelah itu, periksa tinggi dan lebar dengan tinggi dan lebar maksimum. Jika ukurannya terlampaui, tampilkan pesan kesalahan dan hapus juga input file

Kesimpulan

Kami harap artikel ini bermanfaat dalam pemahaman Anda tentang cara memvalidasi ukuran dan jenis gambar. Jika Anda memiliki pertanyaan atau ingin informasi lebih lanjut tentang keahlian kami, jangan ragu untuk menghubungi kami dengan berkomentar di bawah untuk bantuan apa pun

Bagaimana cara mendapatkan lebar dan tinggi gambar yang diunggah di php?

Fungsi getimagesize() akan menentukan ukuran file gambar tertentu yang didukung dan mengembalikan dimensi beserta jenis file dan tinggi .

Bagaimana cara menemukan lebar dan tinggi gambar?

Control+klik pada gambar untuk melihat properti gambar. .
Klik Finder di Dock Anda
Temukan gambar yang ingin Anda periksa
Control+klik (ctrl+klik) gambar Anda. Sebuah menu muncul
Klik Dapatkan Info. .
Perluas Jenderal. bagian untuk melihat ukuran file gambar Anda
Perluas Info Lebih Lanjut. bagian untuk melihat dimensi gambar Anda

Bagaimana cara mendapatkan info gambar di php?

getimagesize() . Metode ini akan mengembalikan data gambar dalam jumlah terbatas. Namun, tidak perlu mengirimkan data sumber daya gambar sebagai argumen dari fungsi ini.

Bagaimana cara mendapatkan DPI gambar di php?

PHP. imageresolusi() Fungsi . Fungsi resolusi gambar () adalah fungsi bawaan dalam PHP yang digunakan untuk mengatur dan mengembalikan resolusi gambar dalam DPI (titik per inci). Jika tidak ada parameter opsional yang diberikan, resolusi saat ini dikembalikan sebagai larik terindeks.