Free Download Mozila fire Fox

Tuesday, August 21, 2007

Upload File dengan PHP MySQL

Menggunakan PHP untuk mengupload file ke dalam database MySQL kadang dibutuhkan oleh beberapa aplikasi berbasis web. Sebagai contoh untuk menyimpan file-file pdf atau gambar untuk membuat tempat penyimpanan yang bersifat online.

Untuk membuat aplikasi upload ini, langkah pertama buatlah sebuah table dengan menggunakan phpMyAdmin atau langsung dari mysql shell command:

CREATE TABLE upload (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(30) NOT NULL,
type VARCHAR(30) NOT NULL,
size INT NOT NULL,
content MEDIUMBLOB NOT NULL,
PRIMARY KEY(id)
);


Kemudian buatlah form untuk upload filenya

< method="`post`" action="`upload.php`" enctype="`multipart/form-data`">
< width="`350`" border="`0`" cellpadding="`1`" cellspacing="`1`" class="`box`">
<>
< width="`246`">
< type="hidden" name="`MAX_FILE_SIZE`" value="`2000000`">
< name="userfile" type="file" id="userfile">
< /td>
< width="`80`">< name="`upload`" type="`submit`" class="`box`" id="`upload`" value="`">
< /tr>
< /table>
< /form >


Form upload harus terdapat encytype="multipart/form-data" jika tidak maka tidak akan bekerja. Dan form method gunakan method="post". Gunakan input hidden MAX_FILE_SIZE sebelum file input. Akan membatasi ukuran file yang akan diupload.

Kemudian buatlah file untuk menerima kiriman variable post dari form upload file.
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{

$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];

$fp = fopen($tmpName, ‘r’);
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);

if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}

include ‘library/config.php’;
include ‘library/opendb.php’;

$query = “INSERT INTO upload (name, size, type, content ) “.
“VALUES (’$fileName’, ‘$fileSize’, ‘$fileType’, ‘$content’)”;

mysql_query($query) or die(’Error, query failed’);
include ‘library/closedb.php’;

echo “
File $fileName uploaded
”;
}
?>


Bila ingin membuat aplikasi dengan spesifikasi file yang lebih besar, seperti file mp3, film, dan file-file besar lainnya, ada beberapa setting yang perlu diubah dari Web Server (php.ini), MySQL (my.cnf)

php.ini
upload_max_filesize = 127M
post_max_size = 127M
max_execution_time = 360

my.cnf
[mysqld]
max_allowed_packet = 127M