problem with upload script

veetha · Aug 11, 2011
kakak saya mw tanya... saya punya script upload file kyak gini :
form_upload.php
<form enctype="multipart/form-data" action="upload.php" method="POST">
 <input type="hidden" name="MAX_FILE_SIZE" value="1000000000000" />
 Pilih File: <input name="userfile" type="file" />
 <input type="submit" value="Upload" />
</form>

upload.php
<?php
 
// setting nama folder tempat upload
$uploaddir = 'data/';
 
// membaca nama file yang diupload
$fileName = $_FILES['userfile']['name']; 
 
// nama file temporary yang akan disimpan di server
$tmpName = $_FILES['userfile']['tmp_name']; 
 
// membaca ukuran file yang diupload
$fileSize = $_FILES['userfile']['size'];
 
// membaca jenis file yang diupload
$fileType = $_FILES['userfile']['type'];
 
// koneksi ke mysql
include ('koneksi.php');
 
// menyimpan properti atau informasi file ke tabel upload dalam db
// dengan terlebih dahulu mengecek ada tidaknya nama file dalam tabel
 
$query = "SELECT count(*) as jum FROM upload WHERE name = '$fileName'";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
 
if ($data['jum'] > 0)
{
 $query = "UPDATE upload SET size = '$fileSize' WHERE name = '$fileName'";
}
else $query = "INSERT INTO upload (name, size, type) VALUES ('$fileName', '$fileSize', '$fileType')";
 
mysql_query($query);
 
// menggabungkan nama folder dan nama file
$uploadfile = $uploaddir . $fileName;
 
// proses upload file ke folder 'data'
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
 echo "File telah diupload";
	echo "<META HTTP-EQUIV=Refresh CONTENT='2; URL=karyainov.php'>";
} else {
 echo "File gagal diupload";
	echo "<META HTTP-EQUIV=Refresh CONTENT='2; URL=form_upload.php'>";
}
 
?>

list.php
<?php
		mysql_connect('localhost','root','');
		mysql_select_db('inovasi');
 
		$query = "SELECT * FROM upload";
		$hasil = mysql_query($query);
 
		while($data = mysql_fetch_array($hasil))
		{
		 echo "<p><a href='download.php?id=".$data['id']."'>".$data['name']."</a> (".$data['size']." bytes) [ <a href='hapus.php?id=".$data['id']."'>Delete</a> ]</p>";
		}
 
?>

download.php
<?php
 
 mysql_connect('localhost','root','');
 mysql_select_db('inovasi');
 
 
 // membaca id file dari link
 $id = $_GET['id'];
 
 // membaca informasi file dari tabel berdasarkan id nya
 $query = "SELECT * FROM upload WHERE id = '$id'";
 $hasil = mysql_query($query);
 $data = mysql_fetch_array($hasil);
 
 // header yang menunjukkan nama file yang akan didownload
 header("Content-Disposition: attachment; filename=".$data['name']);
 
 // header yang menunjukkan ukuran file yang akan didownload
 header("Content-length: ".$data['size']);
 
 // header yang menunjukkan jenis file yang akan didownload
 header("Content-type: ".$data['type']);
 
 // proses membaca isi file yang akan didownload dari folder 'data'
 $fp = fopen("data/".$data['name'], 'r');
 $content = fread($fp, filesize('data/'.$data['name']));
 fclose($fp);
 
 // menampilkan isi file yang akan didownload
 echo $content;
 
 exit;
?>

hapus.php
<?php
 
 include ('koneksi.php');
 
 // membaca id file yang akan dihapus
 $id = $_GET['id'];
 
 // membaca nama file yang akan dihapus berdasarkan id
 $query = "SELECT * FROM upload WHERE id = '$id'";
 $hasil = mysql_query($query);
 $data = mysql_fetch_array($hasil);
 $namaFile = $data['name'];
 
 // query untuk menghapus informasi file berdasarkan id
 $query = "DELETE FROM upload WHERE id = $id";
 mysql_query($query);
 
 // menghapus file dalam folder sesuai namanya
 unlink("data/".$namaFile);
 echo "File telah dihapus";
 
?>


nah masalahnya gini kak... misalkan saya punya 2 file pdf (laporan.pdf diconvert dari word ke pdf dengan add inn office yang save as pdf or xps dan laporanfixed.pdf diconvert dari word ke pdf dengan nitro pdf) dan 2 file word (laporan.docx dan laporanfixed.doc) terus saya upload... setelah itu saya ke list.php dan tampil daftar filenya... terus pas saya download maupun apus juga berhasil... tetapi pas saya buka filenya
file laporan.pdf --> berhasil (isi persis sama kyk file asli)
file laporan.docx juga sama
tapi
pas saya buka file laporanfixed.doc --> isinya tulisan aneh symbol2 gitu kyk %% dan symbol ctrl+* yang ada di word itu..
sedangkan laporanfixed.pdf --> error
padahal klo buka file aslinya itu bisa dibuka dan isinya g kyk gitu..
apa yang salah ya kak??

thanks
veetha
Silahkan login untuk menjawab!
1
Loading...
Ellyx Christian · Aug 11, 2011 · 1 Suka · 0 Tidak Suka
Coba ganti file download jadi:
<?php
mysql_connect('localhost','root','');
mysql_select_db('inovasi');
// membaca id file dari link
$id = $_GET['id'];
// membaca informasi file dari tabel berdasarkan id nya
$query = "SELECT * FROM upload WHERE id = '$id'";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
header("Content-type: application/force-download"); 
header("Content-Transfer-Encoding: Binary"); 
header("Content-length: ".filesize('data/'.$data['name'])); 
header('Content-disposition: attachment; filename="'.$data['name'].'"'); 
readfile('data/'.$data['name']);
?>
0
Loading...
veetha · Aug 12, 2011 · 0 Suka · 0 Tidak Suka
makasich kak dah bisa