Upload Download PHP

Upload Download PHP

Setelah sebelumnya kita mencoba membahas Upload File di PHP, kali ini kita akan mencoba tutorial Download file di PHP. Cara membuat proses download file di php ini sebenarnya cukup mudah untuk dilakukan, langsung saja kita menuju tutorialnya berikut ini:

Buat beberapa file beserta databasenya, disini kita menggunakan MySqli
1. index.php
2. proses-upload.php
3. tampil.php
4. download.php
5. koneksi.php

download-upload.jpg

download-upload

index.php

<!DOCTYPE html>
<html>
<head>
	<title>Upload & Download File</title>
</head>
<body>
	<h2>Upload & Donwload PHP</h2>
	<form action="proses-upload.php" method="POST" enctype="multipart/form-data">
		<input type="file" name="fileku">
		<input type="submit" name="submit" value="UPLOAD">
	</form>
	<a href="tampil.php">Lihat</a>

</body>
</html>

Ada yang perlu diperhatikan untuk membuat fitur upload form teman-teman harus menambahkan atribut tambahan enctype=”multipart/form-data”, agar fitur upload dapat bekerja.

proses-upload.php

<?php
	include "koneksi.php";

	date_default_timezone_set("Asia/Jakarta");
	$tgl = date("Ymd");

	$tmp_file = $_FILES["fileku"]["tmp_name"];
	$nm_file = $_FILES["fileku"]["name"];
	$ukuran_file = $_FILES["fileku"]["size"];
	$dir = "hasil-upload/$nm_file";
	move_uploaded_file($tmp_file, $dir);

	$size = 100000; 

	if($ukuran_file > $size){
		echo "<strong>Gagal upload! <br>Ukuran Maksimal 100kb, saat ini ukuran file ".$ukuran_file."</strong>";
		echo "<a href='index.php'>Upload ulang</a>";
		exit();
	}

	if($nm_file){
		$sql = "INSERT INTO tbl_barang(nama_barang, tanggal) VALUES('$nm_file','$tgl')";
		$query = mysqli_query($koneksi, $sql) or die (mysqli_error());
		echo "Nama file : <strong>$nm_file</strong> berhasil di upload!";
		echo "<br>";
		echo "<a href='tampil.php'>Lihat Data</a>";
	} else {
		echo "Gagal upload!";
		echo "<br>";
		echo "<a href='index.php'>Upload ulang</a>";
	}

Proses upload disini, kita coba batasi untuk upload file maksimal hanya 100kb. Jika melebihi parameter yang kita buat, maka file tidak akan bisa terupload.

tampil.php

<!DOCTYPE html>
<html>
<head>
	<title>Tampil Data</title>
</head>
<body>
	<h2>List Data</h2>
	<?php
		include "koneksi.php";

		$sql = "SELECT * FROM tbl_barang ORDER BY id_barang DESC";
		$query = mysqli_query($koneksi, $sql) or die (mysqli_error());
		while($data = mysqli_fetch_array($query)){
			echo "Nama File: <b>$data[nama_barang]</b>";
			echo "<br>";
			echo "Tanggal: <b>$data[tanggal]</b>";
			echo "<br>";
			echo "<a href='download.php?file=$data[nama_barang]'>Download</a>";
			echo "<br>";
		}
	?>

	<a href="index.php">Tambah Data</a>

</body>
</html>

download.php

<?php
	$dir = "hasil-upload/";
	if(!file_exists($dir.$_GET['file'])){
		echo "Gagal download! File sudah tidak ada di folder";
		exit();
	} else {
		header("Content-Type: octed/stream");
		header("Content-Disposition: attachment; filename=\"".$_GET['file']."\"");
		$fp = fopen($dir.$_GET['file'], "r");
		$data = fread($fp, filesize($dir.$_GET['file']));
		fclose($dir);
		print($data);
	}
?>

koneksi.php

<?php
	$server = "localhost";
	$user = "root";
	$pass = "";
	$database = "db_uploadfile";

	$koneksi = mysqli_connect($server, $user, $pass, $database) or die (mysql_error());

database

Catatan:
Maksimal file upload di XAMPP hanya 2mb di OS Windows.

Comments are closed.