download file dari mysql dengan PHP

February 20, 2009

kemarin telah saya post yang upload, dan sekarang saya ingin menampilkan dan mengambil file tersebut. menggunakan database kemarin, berikut source tampilannya.

<?php
$db_host = 'localhost'; // don't forget to change
$db_user = 'root';
$db_pwd = '';
$database = 'uts';
$table = 'transaksi';

if (!mysql_connect($db_host, $db_user, $db_pwd))
  die("Can't connect to database");
if (!mysql_select_db($database))
  die("Can't select database");

$result = mysql_query("SELECT id_file, nm_file, id_dosen, type_file, des_file from transaksi");

if(mysql_num_rows($result) == 0)
{
echo "Database is empty
";
}
else
{
while(list($id, $nm_file, $nm_dosen, $type_file, $des_file) = mysql_fetch_row($result))
{
// outputing list
		echo "
<tr>";
		echo "
<td align='left' width='22%'>";
		echo "
	<li>";
		echo "<a href='download.php?show={$id}' target='_blank'>{$nm_file}</a> &ndash; ";
		echo "<small>{$des_file}</small> &ndash; ";
		echo "<small>{$nm_dosen}</small></li>
";
		echo "</td>
";
		echo "</tr>
";
}
}
?>

dan beirkut download.php

<?php
$db_host = 'localhost'; // don't forget to change
$db_user = 'root';
$db_pwd = '';
$database = 'uts';
$table = 'transaksi';

if (!mysql_connect($db_host, $db_user, $db_pwd))
  die("Can't connect to database");
if (!mysql_select_db($database))
  die("Can't select database");

$strID=$_GET&#91;'show'&#93;;

$result = mysql_query("SELECT id_file, nm_file, ext, id_dosen, type_file, size_file, isi_file, des_file from transaksi where id_file=$strID");

$row = mysql_fetch_array( $result );
if (!empty($row&#91;"isi_file"&#93;))
{
// Output the MIME header - Force as Octet Stream
// You could get this from the FileType Column
header("Content-type: application/octet-stream");
header("Content-Length: " . strlen($row&#91;'isi_file'&#93;) );
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="'.$row&#91;'nm_file'&#93;.'.'.$row&#91;'ext'&#93;.'"');
header("Content-Transfer-Encoding: binary\n");
echo $row&#91;'isi_file'&#93;;
}
?>

ya, itu lah. Semoga bermanfaat 🙂


upload file ke mysql dengan php

February 19, 2009

sebelumnya saya juga sudah buat unduh image ke dalam myswl, dan ada yang commend kalau file juga bisa masuk, pas d coba eh ternya ta bener bisa.

pertama buat tabelnya dulu,

CREATE TABLE `transaksi`
(`id_file` int(4) NOT NULL auto_increment,
`id_dosen` varchar(30) NOT NULL,
`nm_file` varchar(30) NOT NULL,
`ext` varchar(5) NOT NULL,
`type_file` varchar(30) default NULL,
`size_file` int(11) default NULL,
`isi_file` longblob,
`des_file` varchar(50) NOT NULL,
`tgl_krm` date default NULL,
`jam_krm` time default NULL,
PRIMARY KEY (`id_file`,`id_dosen`));

terus kita buat form.php

<html>
<title>Masukkan File</title>
<head></head>
<body>
<form name="iip" method="post" action="masuk.php?X=E" enctype='multipart/form-data'>
<table width="444" border="0" cellpadding="0" cellspacing="0" height="313" align="center">
<tr>
<td colspan='3' align="center"<font style="font-family: Arial,Verdana,Sans; font-size: 15pt; color: #000000"><b>ADD File</b></font></td>
</tr>
<tr>
<td>Judul File
<td>:</td>
</td>
<td>
<input name="judul"></td>
</tr>
<tr>
<td>File</td>
<td>:</td>
<td><input type="file" name="file" id="file" /></td>
</tr>
<tr>
<td>Deskripsi</td>
<td>:</td>
<td><textarea name="deskripsi" cols="25" rows="4"></textarea></td>
</tr>
<tr>
<td>Dosen</td>
<td>:</td>
<td><input name="dosen" size="33"></td>
</tr>
<tr>
<td><input type="submit" value="Save" name="simpan" style="font-family: Tahoma; font-size: 10pt; color: #000000"></td>
<td><input type="Reset" value="Reset" name="batal" style="font-family: Tahoma; font-size: 10pt; color: #000000"></td>
</tr>
</table>
<form>
</body>
</html>

dan terakhir baru deh masukin ke mysql ini masuk.php

<?php
$db_host = 'localhost'; // don't forget to change
$db_user = 'root';
$db_pwd = '';
$database = 'uts';
$table = 'transaksi';

if (!mysql_connect($db_host, $db_user, $db_pwd))
  die("Can't connect to database");
if (!mysql_select_db($database))
  die("Can't select database");

$strX=$_GET&#91;'X'&#93;;

$strJudul = '';
$strDeskripsi = '';
$strDosen = '';

if($strX==E)
{

if ($_FILES&#91;"file"&#93;&#91;"error"&#93; > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "
";
  }
else
  {
     $strJudul = $_POST['judul'];
	$strType = $_FILES["file"]["type"];
	$strSize = ($_FILES["file"]["size"] / 1024);
	$strFile = $_FILES["file"]["tmp_name"];
	$nsf = $_FILES["file"]["name"];
	$strNama = strtolower(end(explode('.', $nsf)));
	$strDeskripsi = $_POST['deskripsi'];
	$strDosen = $_POST['dosen'];
	$strTgl = date('Y-m-d');
	$strJam = date('H:i:s');

	$fp      = fopen($strFile, 'r');
	$content = fread($fp, filesize($strFile));
	$content = addslashes($content);
	fclose($fp);

	mysql_query("INSERT INTO transaksi (id_dosen, nm_file, ext, type_file, size_file, isi_file, des_file, tgl_krm, jam_krm) value('".$strDosen."','".$strJudul."','".$strNama."','".$strType."','".$strSize."','".$content."','".$strDeskripsi."','".$strTgl."','".$strJam."')");

	echo "alhamdulillah";
  }
}
?>
<body onload="alert('Sukses dan Terima Kasih');window.location.assign('form.php');"></body>

ya, bisa juga buat file koneksi tersendiri, tapi biar cepet saya masukin d sini aja (kan cuma contoh) 😀


login ala Cpanel

February 17, 2009

hem….

dah mulai bungung nih mau nulis apa lagi d blog ini (walau isinya kebanyakan co-pas) hehehe…

ya, sekarang saya mau belajar lg OOP pada PHP (telat ga ya?) dulu pernah belajar, malah dah sempet buat aplikasi dengan java(J2SE) eh, pas kantor butuh PHP jd d lupain deh pacar pertama itu (karena masih pake prosedural)

lho..lho.. sebenernya ini bukan ngebahas OOP, tapi cuma tertarik aja buat login ala Cpanel, ternyata sourcenya dikit ya 😀 agak lucu nih, waktu coba sukses, kok pas coba lg aneh tampilannya beda bgt. eh ternyata beda browser itu beda tampilan (maklum tampilannya kan ga buat sendiri, melainkan langsung panggil aja) nih tampilan dengan IE

login

keliatannya keren kan? beda kalo pake mozilla (check sendiri ya) dan ini sourcenya.


<?php
if (!isset($_SERVER&#91;'PHP_AUTH_USER'&#93;)) {
header('WWW-Authenticate: Basic realm="Login ALA Cpanel"');
echo 'Anda membatalkan login !';
exit;
} else {
echo "Anda memasukkan username {$_SERVER&#91;'PHP_AUTH_USER'&#93;}.
";
echo "dan password {$_SERVER&#91;'PHP_AUTH_PW'&#93;}.
";
}
?>

dikit kan? oya, untuk arti dan maksud dari soource d atas saya blom bisa jelasin (kan masih belajar juga) 😀