Membuat Form Upload File dengan PHP

Di Tulis Oleh : Ivan Silalahi 14 comments


-->
Pasti kalian pernah meng-upload foto di Facebook atau situs lainya. Kali ini kita juga akan membuat form untuk meng-upload poto atau data lainya. Seperti yang telah saya jelaskan pada tutorial HTML 4, kita perlu menggunakan file field untuk memilih data yang akan kita upload nantinya.
Pada file field terdapat seperti text field yang akan menunjukan path file kita, dan button untuk memilih file yang akan kita pilih. Lalu pada properties form, ditambahkan enctype="multipart/form-data"  agar pada proses upload berlangsung lancar.
Langsung saja kita mulai langkah-langkahnya.

1. Membuat Halaman Form Upload

Buat halaman HTML dengan nama upload.html dengan kode berikut.

<html>
<body>
<form action ="upload_file.php" metode="post" enctype="multipart/form-data">
<label for="file"> Filename: </label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>



          Penjelasan file upload.html

  • Atribut enctype dari tag <form> yang menentukan jenis konten yang akan digunakan saat mengirimkan formulir. "Multipart / form-data" digunakan ketika membentuk memerlukan data biner, seperti isi file, untuk diupload
  • Jenis = "file" attribute dari tag <input> menentukan bahwa input harus diproses sebagai file. Sebagai contoh, bila dilihat dalam browser, akan ada sebuah browse-tombol di samping kolom input.


2. Membuat Skrip Upload File

Buatsebuah file dengan nama upload_file.php .  file ini  berisi kode untuk meng-upload file kedalam direktori yang kita tuju. Copy dan simpan skrip di bawah dengan nama upload_file.php.

<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error:".$_FILES["file"]["error"] ."<br />";
}
else
{
echo "Upload:".$_FILES["file"]["name"]."<br />";
echo "Type: ".$_FILES["file"]["type"]. "<br />";
echo "Size: ".($_FILES["file"]["size"]/ 1024) ." Kb<br />";
echo "Stored in: ".$_FILES["file"]["tmp_name"];
}
?>

Dengan menggunakan global PHP $_FILES array Anda dapat meng-upload file dari komputer klien untuk server yang jauh (internet).

        Penjelasan Code diatas

  • $_FILES["file"]["name"] - nama file upload
  • $_FILES["file"]["type"] - jenis file upload
  • $_FILES["file"]["size"] - ukuran dalam byte dari file upload
  • $_FILES["file"]["tmp_name"] - nama salinan sementara dari file yang tersimpan di server
  • $_FILES["file"]["error"] - kode kesalahan yang dihasilkan dari file upload

Ini adalah cara yang sangat sederhana untuk meng-upload file. Untuk alasan keamanan, Anda harus menambahkan pembatasan pada apa pengguna diperbolehkan untuk meng-upload. Untuk itu kita perlu membuat skrip pembatas.


3. Membuat Skrip Pembatasan Upload File

Dalam script ini kita menambahkan beberapa pembatasan untuk upload file. Pengguna hanya dapat meng-upload gif atau file jpeg dan ukuran file harus berada di bawah 20 kb:

<?php
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{ echo "Invalid file";
}
?>

Catatan :
 Untuk IE untuk mengenali jenis file gambar jpg menggunakan pjpeg, untuk FireFox menggunakan jpeg.



4. Menyimpan File yang terupload

Contoh di atas adalah, membuat salinan sementara dari file yang diupload ke PHP temporary folder pada server localhost. File disimpan sementara saat proses skrip telah berakhir. Untuk menyimpan upload file kita perlu penyalinan path ke lokasi yang berbeda :

if ((($_FILES["file"]["type"]=="image/gif") || ($_FILES["file"]["type"]=="image/jpeg") || ($_FILES["file"]["type"]=="image/pjpeg")) && ($_FILES["file"]["size"]<20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code:".$_FILES["file"]["error"]."<br />";
}
else
{
echo "Upload:".$_FILES["file"]["name"]."<br />";
echo "Type: ".$_FILES["file"]["type"]."<br />";
echo "Size: ".($_FILES["file"]["size"] / 1024)." Kb<br />";
echo "Temp file: ".$_FILES["file"]["tmp_name"]."<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"]."already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
>
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>

Skrip di atas memeriksa apakah file sudah ada, jika tidak, file akan di simpan ke folder yang dituju.

Catatan :
Contoh ini akan menyimpan file tersebut ke folder baru yaitu folder "upload"



Cara menyusun skrip atau kode :


- Anda harus membuat file atau halaman form dan skrip upload file (upload_file.php)
- Kode dari file upload_file.php dapat diganti dengan langkah no 2, 3 dan 4

Semoga apa yang telah saya jelaskan dapat dipahami para sobat sekalian. Selamat mencoba dan berkarya.

Baca Selengkapnya ....

membuat posting artikel seperti blogspot dengan php mysql

Di Tulis Oleh : Ivan Silalahi 53 comments


Rekan pasti tahu yang namanya blogspot. Kalau kita perhatikan pada blogspot, setiap kita memposting blog baru pada artikel maka artikel yang kita posting tadi akan ditampilkan pada halaman utama dari blog kita. pada tutorial kali ini, saya akan menjelaskan cara membuat posting artikel seperti pada blogspot dengan menggunakan php yang mana posting artikel tersebut akan disimpan di database website kita.
Pertama kita harus membuat database dan tabelnya terlebih dahulu. adapun struktur dari tabelnya adalah sebagai berikut

Nama kolom type size AI Key
id_artikel INT 5 * *
Judul_artikel VARCHAR 255
isi_artikel TEXT
tgl_artikel DATETIME

Untuk membuat tabel seperti diatas menggunakan mysql, kita bisa menggunakan code seperti dibawah ini


-- phpMyAdmin SQL Dump
-- version 2.11.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Apr 16, 2013 at 06:06 PM
-- Server version: 5.0.45
-- PHP Version: 5.2.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `postingan`
--

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

--
-- Table structure for table `tblartikel`
--

CREATE TABLE `tblartikel` (
  `id_artikel` int(5) NOT NULL auto_increment,
  `judul_artikel` varchar(255) collate latin1_general_ci NOT NULL,
  `isi_artikel` text collate latin1_general_ci NOT NULL,
  `tgl_artikel` datetime NOT NULL,
  PRIMARY KEY  (`id_artikel`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;

--
-- Dumping data for table `tblartikel`
--


Setelah kita membuat tabelnya, sekarang buatlah form untuk memasukkan artikel kita kedalam database. berikut kodenya :

<form method="post" name="posting_form" action="submit.php">
Judul Artikel<br>
<input type="text" name="judul_artikel" size="30"><br>
Isi Artikel<br>
<textarea name="isi_artikel" cols="60" rows="10"></textarea><br>
<input type="submit" name="submit" value="submit artikel">
</form>

Simpan dengan nama form_artikel.php.

Kalau kita perhatikan, pada form diatas menunjukan kalau action submit akan dilakukan dihalaman submit.php, itu artinya ketika kita menekan tombol sumbit artikel pada form tersebut maka kita akan dialihkan kepada halaman submit.php yang mana halaman tersebut akan melakukan proses memasukkan value kedalam database dengan value yang sudah didefinisikan dari masing masing kolom input. Karena itu sekarang kita akan membuat halaman submit.php-nya. berikut codenya :


<?php


//membuat koneksi kedatabase

$dbhost ="localhost";
$dbuser ="root";
$dbpassword ="";
$dbname ="postingan";
$koneksi = mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($dbname,$koneksi);


//membuat variabel dari inputan form

$judul = $_POST['judul_artikel'];
$isi = $_POST['isi_artikel'];
$tgl = date('Y-m-d');


//proses query memasukkan data ke database

$query = mysql_query("INSERT INTO tblartikel VALUES ('','$judul','$isi','$tgl')");


//cek apakah querynya berhasil atau tidak

if ($query) {


//jika berhasil maka tampilkan pesan

echo 'berhasil membuat artikel dengan judul '.$judul ;
}
else
{

//tampilkan pesan error jika query tidak berhasil

echo 'gagal membuat artikel dengan judul '.$judul ;


//tutup koneksi ke database

mysql_close();
}
?>

<a href="index.php">Lihat Hasil Posting </a>


simpan dengan nama submit.php

Dengan selesainya kita membuat submit.php ini, maka kita selesai membuat suatu aplikasi berbasis web untuk postingan seperti pada blogspot. Tetapi, bagaimana caranya kalau kita ingin menampilkan halaman yang sudah kita posting tadi dihalaman website kita? Baiklah sekarang kita akan membuatnya, berikut kodenya :


<html>
<head>
</head>
<body>
<p>
<a href="form_artikel.php">Buat artikel baru </a>
</p>
<br>
<?php


//buat dulu koneksi kedatabase

$dbhost = 'localhost';
$dbuser = 'root';
$dbpassword = '';
$dbname = 'postingan';
$koneksi = mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($dbname,$koneksi);


//buat query terlebih dahulu

$query = mysql_query("SELECT * FROM tblartikel");


//cek apakah kita sudah memposting artikel atau belum

if (mysql_num_rows($query) == 0) {


//tampilkan pesan kalau artikel belum ada

echo 'maaf, belum ada artikel';

else 
{


//buat pengulangan untuk menampilkan data artikel dengan 
//menggunakan while dan definisikan kedalam variabel data

while ($data = mysql_fetch_array($query)) 
{


//kita akan menampilkan judul artikel

echo '<p><strong>'.$data['judul_artikel'].'</strong></p>';



//tampilkan tanggal pembuatan artikel
//gunakan fungsi strtotime untuk merubah bentuk date 
//kedalam bentuk string

echo '<p><em>'.date('j, F Y',strtotime($data['tgl_artikel'])).'</em></p>';



//menampilkan isi artikel yang sudah kita buat

echo '<p>'.$data['isi_artikel'].'</p>';
}
}


//tutup koneksi database

mysql_close();
?>
</body>
</html>

simpan dengan nama index.php
test dengan menjalankan index.php


Untuk anda yang ingin mendownload langsung source code dari postingan ini, bisa anda download dibawah ini.

Download Source Code

Dengan sudah dibuatnya link download diatas, maka selesailah sudah tutorial dari saya tentang membuat posting artikel seperti blogspot dengan php mysql ini, dikemudian hari saya akan menjelaskan bagaimana cara membuat tampilan singkat dari daftar artikel yang ada tulisan read more-nya. Karena itu sering seringlah mampir disini untuk update selanjutnya.

Baca Selengkapnya ....
Template by Tutorial Website - Belajar Pintar PHP. Design by Ivan Silalahi | Copyright of Belajar Pintar PHP.