Upload Image Multiple Dengan PHP Mysql
Upload file dalam PHP adalah fungsi yang paling banyak digunakan untuk aplikasi web. Satu file atau banyak file dapat dengan mudah diupload menggunakan PHP. PHP menyediakan cara cepat dan sederhana untuk mengimplementasikan fungsi upload file sisi server. Secara umum, dalam aplikasi web, file diupload ke server dan nama file disimpan dalam database. Kemudian file diambil dari server berdasarkan nama file yang disimpan dalam database.
Dalam kebanyakan kasus, satu gambar diupload sekaligus. Tetapi terkadang Anda harus mengunggah banyak gambar sekaligus. Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana cara mengunggah banyak gambar dalam PHP dan menyimpan gambar dalam database MySQL. Unggahan banyak gambar memungkinkan pengguna untuk memilih banyak file sekaligus dan mengunggah semua file ke server dalam satu klik. Sebagai contoh lihat pada langkah-langkah dibawah
Buat Tabel Database
kenapa perlu membuat tabel? karena tabel dalam database digunakan untuk menyimpan nama file gambar. sebagai contoh copy saja script dibawah ini kedalam database sobat.
CREATE TABLE `images` ( `id` int(11) NOT NULL AUTO_INCREMENT, `file_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `uploaded_on` datetime NOT NULL, `status` enum('1','0') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Configurasi Database
langkah selanjutnya adalah membuat konfigurasi database untuk menghubungkan tabel yang digunakan, sesuaikan host, username, password dan nama database sesuai dengan Mysql sobat.
copy script dibawah dan simpan dengan nama "config.php".
<?php// Database configuration$dbHost = "localhost";$dbUsername = "root";$dbPassword = "";$dbName = "upload"; // Create database connection$db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); // Check connectionif ($db->connect_error) { die("Connection failed: " . $db->connect_error); }?>
Buat Form Upload Gambar
buat sebuah form untuk upload gambar seperti dibawah
<form action="" method="post" enctype="multipart/form-data"> Select Image Files to Upload: <input type="file" name="files[]" multiple > <input type="submit" name="submit" value="UPLOAD"> </form>Buat File Upload.php
File digunakan untuk aksi upload gambar yang menangani beberapa fungsi upload gambar dan memperlihatkan status upload kepada pengguna. Sertakan file konfigurasi basis data untuk menghubungkan dan memilih basis data MySQL.
<?php if(isset($_POST['submit'])){ // Include the database configuration file include_once 'config.php'; // File upload configuration $targetDir = "uploads/"; $allowTypes = array('jpg','png','jpeg','gif'); $statusMsg = $errorMsg = $insertValuesSQL = $errorUpload = $errorUploadType = ''; $fileNames = array_filter($_FILES['files']['name']); if(!empty($fileNames)){ foreach($_FILES['files']['name'] as $key=>$val){ // File upload path $fileName = basename($_FILES['files']['name'][$key]); $targetFilePath = $targetDir . $fileName; // Check whether file type is valid $fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION); if(in_array($fileType, $allowTypes)){ // Upload file to server if(move_uploaded_file($_FILES["files"]["tmp_name"][$key], $targetFilePath)){ // Image db insert sql $insertValuesSQL .= "('".$fileName."', NOW()),"; }else{ $errorUpload .= $_FILES['files']['name'][$key].' | '; } }else{ $errorUploadType .= $_FILES['files']['name'][$key].' | '; } } if(!empty($insertValuesSQL)){ $insertValuesSQL = trim($insertValuesSQL, ','); // Insert image file name into database $insert = $db->query("INSERT INTO images (file_name, uploaded_on) VALUES $insertValuesSQL"); if($insert){ $errorUpload = !empty($errorUpload)?'Upload Error: '.trim($errorUpload, ' | '):''; $errorUploadType = !empty($errorUploadType)?'File Type Error: '.trim($errorUploadType, ' | '):''; $errorMsg = !empty($errorUpload)?'<br/>'.$errorUpload.'<br/>'.$errorUploadType:'<br/>'.$errorUploadType; $statusMsg = "Files are uploaded successfully.".$errorMsg; }else{ $statusMsg = "Sorry, there was an error uploading your file."; } } }else{ $statusMsg = 'Please select a file to upload.'; } // Display status message echo $statusMsg; } ?>
Menampilkan Gambar Dari Database
selanjutnya kita akan menampilkan gambar berdasarkan nama dari database yang tadinya sudah kita upload.
<?php// Include the database configuration fileinclude_once 'config.php'; // Get images from the database$query = $db->query("SELECT * FROM images ORDER BY id DESC"); if($query->num_rows > 0){ while($row = $query->fetch_assoc()){ $imageURL = 'uploads/'.$row["file_name"];?> <img src="<?php echo $imageURL; ?>" alt="" /> <?php } }else{ ?> <p>No image(s) found...</p> <?php } ?>
No comments for "Upload Image Multiple Dengan PHP Mysql"
Post a Comment