System Upload Gambar Menggunakan PHP

upload gambar php

Kali ini kami akan share bagaimana membuat system sederhana yaitu upload gambar menggunakan PHP. Aplikasi upload gambar sangat banyak digunakan pada sebuah system yang besar, misalnya facebook dan hampir semua system yang ada saat ini. Script yang ada akan secara otomatis mengatur gambar yang diunggah ke dalam format gaya galeri. Script ini menggunakan parameter MySQLi SELECT untuk membuat halaman pengaturan galeri dengan mengulang gambar di server database.

Langsung saja mari kita masuk kedalam pembahasan inti.

1. Buat database dengan nama db_gallery kemudian masukkan struktur database dibawah ini.

-- phpMyAdmin SQL Dump
-- version 4.8.3
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: May 01, 2019 at 01:27 AM
-- Server version: 10.1.36-MariaDB
-- PHP Version: 7.2.10

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `db_gallery`
--

-- --------------------------------------------------------

--
-- Table structure for table `image`
--

CREATE TABLE `image` (
  `image_id` int(11) NOT NULL,
  `image` varchar(100) NOT NULL,
  `location` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `image`
--

INSERT INTO `image` (`image_id`, `image`, `location`) VALUES
(3, '1556666227.png', 'upload/1556666227.png'),
(4, '1556666238.jpg', 'upload/1556666238.jpg'),
(5, '1556666246.jpg', 'upload/1556666246.jpg');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `image`
--
ALTER TABLE `image`
  ADD PRIMARY KEY (`image_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `image`
--
ALTER TABLE `image`
  MODIFY `image_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

2. Buat file dengan nama conn.php file ini sebagai koneksi kedatabase.

<?php
	$conn = mysqli_connect("localhost", "root", "", "db_gallery");
	
	if(!$conn){
		die("Error: Failed to connect to database!");
	}
?>

3. Buat file dengan nama index.php file ini berfungsi sebagai form upload gambar.

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1"/>
		<link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
	</head>
<body>
	<nav class="navbar navbar-default">
		<div class="container-fluid">
			<a class="navbar-brand" href="https://jasawebsite.ooo">Jasawebsite</a>
		</div>
	</nav>
	<div class="col-md-3"></div>
	<div class="col-md-6 well">
		<h3 class="text-primary">Upload Gambar Menggunakan PHP</h3>
		<hr style="border-top:1px dotted #ccc;"/>
		<form method="POST" action="upload.php" enctype="multipart/form-data">
			<div class="form-inline">
				<label>Upload here</label>
				<input type="file" name="image" class="form-control" required="required"/>
				<button class="btn btn-primary" name="upload"><span class="glyphicon glyphicon-upload"></span> Upload</button>
			</div>
		</form>
		<br />
		<div class="alert alert-info">My Gallery</div>
		<?php
			require 'conn.php';
			
			$query = mysqli_query($conn, "SELECT * FROM `image`") or die(mysqli_error());
			while($fetch = mysqli_fetch_array($query)){
		?>
			<div style="border:1px solid #000; height:190px; width:190px; padding:4px; float:left; margin:10px;">
				<a href="<?php echo $fetch['location']?>"><img src="<?php echo $fetch['location']?>" width="180" height="180"/></a>
			</div>
		<?php
			}
		?>
	</div>
</body>	
</html>

4. Buat file dengan nama upload.php file ini merupakan fungsi utama dalam system sederhana ini. Script yang ada pada file ini akan mengunggah dan menampilkan gambar ketika button upload.

<?php
	require_once 'conn.php';
	
	if(ISSET($_POST['upload'])){
		$image_name = $_FILES['image']['name'];
		$image_temp = $_FILES['image']['tmp_name'];
		$image_size = $_FILES['image']['size'];
		$ext = explode(".", $image_name);
		$end = end($ext);
		$allowed_ext = array("jpg", "jpeg", "gif", "png");
		$name = time().".".$end;
		$path = "upload/".$name;
		if(in_array($end, $allowed_ext)){
			if($image_size > 5242880){
				echo "<script>alert('File too large!')</script>";
				echo "<script>window.location = 'index.php'</script>";
			}else{
				if(move_uploaded_file($image_temp, $path)){
					mysqli_query($conn, "INSERT INTO `image` VALUES('', '$name', '$path')") or die(mysqli_error());
					echo "<script>alert('Image uploaded!')</script>";
					echo "<script>window.location = 'index.php'</script>";
				}
			}
		}else{
			echo "<script>alert('Invalid image format!')</script>";
			echo "<script>window.location = 'index.php'</script>";
		}
		
		
	}
?>

Kalian bisa mendownload filenya langsung dengan menekan button download dibawah ini.

Sekian share kali ini semoga apa yang kami share bermanfaat bagi anda, jika kalian begitu paham silahkan tinggalkan komentar dan mulai berdiskusi dengan team kami.

Leave a Reply

Your email address will not be published. Required fields are marked *