Sabtu, 02 April 2016

Membuat Form Upload Download dan Searching File Dengan PHP MySQL

Tutorial :

1. Buat dahulu sebuah database di phpMyAdmin. Disini saya membuat database dengan nama coba, kemudian Dumping kode SQL di bawah ini.


DROP TABLE IF EXISTS `download`;
CREATE TABLE `download` (
  `id` int(11) NOT NULL auto_increment,
  `tanggal_upload` date NOT NULL,
  `nama_file` varchar(100) NOT NULL,
  `tipe_file` varchar(10) NOT NULL,
  `ukuran_file` varchar(20) NOT NULL,
  `file` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
);
 
2. Kemudian buatlah beberapa file php seperti contoh di bawah ini.
 
a.  Buat dengan nama config.php

<?php
//koneksi ke database
mysql_connect("localhost", "root", "mustafid123");
mysql_select_db("coba");

//fungsi untuk mengkonversi size file
function formatBytes($bytes, $precision = 2) {
    $units = array('B', 'KB', 'MB', 'GB', 'TB');

    $bytes = max($bytes, 0);
    $pow = floor(($bytes ? log($bytes) : 0) / log(1024));
    $pow = min($pow, count($units) - 1);

    $bytes /= pow(1024, $pow);

    return round($bytes, $precision) . ' ' . $units[$pow];
}
?>

Kode di atas kita sudah bisa melakukan koneksi ke database, jangan lupa mengedit detail koneksi ke database milik anda sendiri.
 
b. Buat dengan nama index.php

<!DOCTYPE html>
<html>
<head>
    <title>Upload Download dan Searching File</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

    <div id="container">
        <div id="header">
            <h1> Upload Download dan Searching File Dengan PHP MySQl</h1>
           
        </div>

        <div id="menu">
            <a href="index.php" class="active">Home</a>
            <a href="upload.php">Upload</a>
            <a href="download.php">Download</a>
           
        </div>

        <div id="content">
            <h2>Home</h2>
       
            <p>Web Download Upload dan Searching File<p>

        </div>
    </div>

</body>
</html>
 
c. Buat dengan nama upload.php

<!DOCTYPE html>
<html>
<head>
    <title>Simple Upload dan Download File</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

    <div id="container">
        <div id="header">
            <h1> Upload Download dan Searching File Dengan PHP MySQl</h1>
           
        </div>

        <div id="menu">
            <a href="index.php">Home</a>
            <a href="upload.php" class="active">Upload</a>
            <a href="download.php">Download</a>
           
        </div>

        <div id="content">
            <h2>Upload</h2>
            <p>Upload file Anda dengan melengkapi form di bawah ini. File yang bisa di Upload hanya file dengan ekstensi <b>.doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf, .rar, .zip,jpg,png</b> dan besar file (file size) maksimal hanya 1 MB.</p>

            <?php
            include('config.php');
            if($_POST['upload']){
                $allowed_ext    = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf', 'rar', 'zip','jpg','png');
                $file_name        = $_FILES['file']['name'];
                $file_ext        = strtolower(end(explode('.', $file_name)));
                $file_size        = $_FILES['file']['size'];
                $file_tmp        = $_FILES['file']['tmp_name'];

                $nama            = $_POST['nama'];
                $tgl            = date("Y-m-d");

                if(in_array($file_ext, $allowed_ext) === true){
                    if($file_size < 1044070){
                        $lokasi = 'files/'.$nama.'.'.$file_ext;
                        move_uploaded_file($file_tmp, $lokasi);
                        $in = mysql_query("INSERT INTO download VALUES(NULL, '$tgl', '$nama', '$file_ext', '$file_size', '$lokasi')");
                        if($in){
                            echo '<div class="ok">SUCCESS: File berhasil di Upload!</div>';
                        }else{
                            echo '<div class="error">ERROR: Gagal upload file!</div>';
                        }
                    }else{
                        echo '<div class="error">ERROR: Besar ukuran file (file size) maksimal 1 Mb!</div>';
                    }
                }else{
                    echo '<div class="error">ERROR: Ekstensi file tidak di izinkan!</div>';
                }
            }
            ?>

            <p>
            <form action="" method="post" enctype="multipart/form-data">
            <table width="100%" align="center" border="0" bgcolor="#eee" cellpadding="2" cellspacing="0">
                <tr>
                    <td width="40%" align="right"><b>Nama File</b></td><td><b>:</b></td><td><input type="text" name="nama" size="40" required /></td>
                </tr>
                <tr>
                    <td width="40%" align="right"><b>Pilih File</b></td><td><b>:</b></td><td><input type="file" name="file" required /></td>
                </tr>
                <tr>
                    <td>&nbsp;</td><td>&nbsp;</td><td><input type="submit" name="upload" value="Upload" /></td>
                </tr>
            </table>
            </form>
            </p>
        </div>
    </div>

</body>
</html>
 
d. Buat dengan nama download.php
 <!DOCTYPE html>
<html>
<head>
    <title>Simple Upload dan Download File</title>
    <link rel="stylesheet" type="text/css" href="style.css">s
</head>
<body>

    <div id="container">
        <div id="header">
            <h1> Upload Download dan Searching File Dengan PHP MySQl</h1>
           
        </div>

        <div id="menu">
            <a href="index.php">Home</a>
            <a href="upload.php">Upload</a>
            <a href="download.php" class="active">Download</a>
            <form action="form.php" method="post"> 
Search: <input type="text" name="term" /><br /> 
<input type="submit" value="Submit" /> 
</form> 
        </div>

        <div id="content">
            <h2>Download</h2>

                        <p>Silahkan download file yang sudah di Upload di website ini. Untuk men-Download Anda bisa mengklik Judul file yang di inginkan.</p>

            <p>
            <table class="table" width="100%" cellpadding="3" cellspacing="0">
                <tr>
                    <th width="30">No.</th>
                    <th width="80">Tgl. Upload</th>
                    <th>Nama File</th>
                    <th width="70">Tipe</th>
                    <th width="70">Ukuran</th>
                </tr>
                <?php
                include('config.php');
                $sql = mysql_query("SELECT * FROM download ORDER BY id DESC");
                if(mysql_num_rows($sql) > 0){
                    $no = 1;
                    while($data = mysql_fetch_assoc($sql)){
                        echo '
                        <tr bgcolor="#fff">
                            <td align="center">'.$no.'</td>
                            <td align="center">'.$data['tanggal_upload'].'</td>
                            <td><a href="'.$data['file'].'">'.$data['nama_file'].'</a></td>
                            <td align="center">'.$data['tipe_file'].'</td>
                            <td align="center">'.formatBytes($data['ukuran_file']).'</td>
                        </tr>
                        ';
                        $no++;
                    }
                }else{
                    echo '
                    <tr bgcolor="#fff">
                        <td align="center" colspan="4" align="center">Tidak ada data!</td>
                    </tr>
                    ';
                }
                ?>
            </table>
            </p>
        </div>
    </div>
</body>
</html>
 
 e. Buat dengan nama form.php

<?php
$db_hostname = 'localhost';
$db_username = 'root';
$db_password = 'mustafid123';
$db_database = 'coba';

// Database Connection String
$con = mysql_connect($db_hostname,$db_username,$db_password);
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db($db_database, $con);
?>

<!DOCTYPE html>
<html lang="en">
    <head>
    <link rel="stylesheet" type="text/css" href="style.css">
    <style>
    div {
    width: 150px;
    padding: 15px;
    border: 15px solid navy;
    margin: 15px;
}

    </style>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body background-color="">
<div>
<form action="" method="post"> 
Search: <input type="text" name="term" /><br /> 
<input type="submit" value="Submit" /> 
</form> </div>

<?php
if (!empty($_REQUEST['term'])) {

$term = mysql_real_escape_string($_REQUEST['term']);    

$sql = "SELECT * FROM download WHERE nama_file LIKE '%".$term."%'";
$r_query = mysql_query($sql);

echo "<center>";
echo "<h2> Hasil Searching </h2>";
echo "<table border='1' cellpadding='5' cellspacing='8'>";
echo "
<tr bgcolor='white'>
<td>No</td>
<td>tanggal_upload</td>
<td>nama_file</td>
<td>tipe_file</td>
<td>ukuran_file</td>
<td>file</td>
</tr>";
while ($data = mysql_fetch_assoc($r_query)){

echo "
<tr
bgcolor='white'>
<td>".$data['id']."</td>
<td>".$data['tanggal_upload']."</td>";

echo '<td><a href="'.$data['file'].'">';
echo "".$data['nama_file']."";
echo'</a></td>';
echo "
<td>".$data['tipe_file']."</td>
<td>".$data['ukuran_file']."</td>
<td>".$data['file']."</td>
</tr>";

}
echo "</table>";          
           
}

?>
    </body>
</html>

f. Buat dengan nama search.php
<?php
    mysql_connect("localhost", "root", "mustafid123") or die("Error connecting to database: ".mysql_error()); 
    mysql_select_db("coba") or die(mysql_error());
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Search results</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<?php
    $query = $_GET['query'];
   
    $min_length = 3;
    
    if(strlen($query) >= $min_length){
        
        $query = htmlspecialchars($query);
      
        $query = mysql_real_escape_string($query);
       
        $raw_results = mysql_query("SELECT * FROM download
            WHERE (`nama_file` LIKE '%".$query."%') OR (`nama_file` LIKE '%".$query."%')") or die(mysql_error());
        
        if(mysql_num_rows($raw_results) > 0){
            
            while($results = mysql_fetch_array($raw_results)){
          
            
                echo "<p><h3>".$results['nama_file']."</h3>".$results['text']."</p>";            
        }
        else{
            echo "No results";
        }
        
    }
    else{
        echo "Minimum length is ".$min_length;
    }
?>
</body>
</html>

g. Buat dengan nama style.css

@charset "utf-8";
/* CSS Document */

body {
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    background-images: url ('images.jpeg');
    margin:0;
    padding:0;
}

h1, h2, h3 {
    margin:0;
    padding:0;
}

#container {
    width:500px;
    margin:20px auto;
    padding:10px;
    background-color:grey;
    box-shadow:0px 0px 3px #000;
}

#header {
    text-align:center;
}

#menu {
    text-align:center;
    margin:15px 0px;
    border-top:1px solid #CCC;
    border-bottom:1px solid #CCC;
}

    #menu a {
        display:inline-block;
        padding:5px 10px;
        text-decoration:none;
        color:#000;
        font-weight:bold;
    }

        #menu a:hover {
            background-color:#CCC;
        }

        #menu a.active {
            background-color:#CCC;
        }

.table, th, td {
    border-collapse:collapse;
    border:1px solid #ccc;
}

    .table th {
        background-color:#CCC;
    }

.error {
    border:1px solid #FF8080;
    background-color:#FFCECE;
    padding:3px;
    margin:5px 0px;
    text-align:center;
}

.ok {
    border:1px solid #80FF80;
    background-color:#CFC;
    padding:3px;
    margin:5px 0px;
    text-align:center;
}

3. Setelah semuanya sudah anda copy lalu di cetak pada text editor kemudian disimpan di jadikan satu di folder upload pada file direktori var/www/html/upload/ dan di dalam file upload buat file bernama files contoh sebagai berikut :

a. masuklah kefile direktori var/www/html/upload klik kanan pilih create folder dan beri nama files.


b. kemudian beri hak akses dengan cara masuk ke terminal ketikan seperti gambar di bawah ini.



 Perintah-perintah di atas adalah untk memberikan hak akses pada folder upload dan folder files.
4. Setelah semuanya selesai kemudian kita akan coba hasilnya dengan cara sebagai berikut :
 
a.Tuliskan di web browser http://localhost/upload/ 
 

b. Klik tulisan upload untuk mencoba upload file 
Klik Browse


Cari file yang ukuranya kurang dari 1 MB contoh seperti gambar di bawah ini lalu klik open.


Langsung Saja klik upload.


File berhasil di upload.


Untuk membuka file klik saja nama filenya.


Hasilnya seperti ini langsung terbuka karena saya mengupload file pdf.


5. Mengupload file yang ukuranya lebih dari 1 MB caranya sebagai berikut :

a. Buka file php di text editor atau sublime text editor yang bernama upload.php kemudian cari tulisan file_size kemudian ganti ukuranya contoh seperti gambar di bawah ini.


Ganti menjadi seperti ini.
Jangan lupa setelah mengedit di save atau ctrl+s


Setelah itu saya mencoba mengupload file dengan ukuran 25.44 MB


Ternyata berhasil dan sudah bisa di download.


6. Tombol search saya gunakan untuk lebih cepat mencari file yang saya inginkan bila di tabel ini sudah terisi banyak file contohnya sebagai berikut :

a. Untuk mencari file nya cukup tuliskan nama file yang kita cari kemudian klik search contoh seperti gambar di bawah ini saya mencari file yang bernama laravel.



b. Hasilnya seperti ini bila anda klik nama file nya akan langsung terbuka itu karena tipe filenya adalah pdf.


7. Fungsi folder files yang kita buat pada folder upload tadi adalah sebagai tempat penyimpanan file yang sudah kita upload contoh seperti gambar di bawah ini.



Sekian dulu dari saya semoga artikel saya ini bermanfaat bagi anda semua yang telah membacanya atapun mempraktikan nya. 

Wassalamualaikum Wr. Wb.



0 komentar:

Posting Komentar