Membuat Force Download

Force Download ? apa maksud dari kata tersebut aku juga agak susah mendefinisikannya, intinya Force Download adalah di saat kita menemui satu link suatu situs yang mengarah ke satu file itu akan secara langsung di download.

Misalnya gini, pernahkah kalian mencari suatu gambar melalui Google Image ? Saat kita pilih salah satu gambar yang pas dengan pilihan kita, terkadang gambarnya bisa langsung di download dengan muncul window save as tanpa memperlihatkan previewnya di browser. Dan sering juga saat kita ke satu link gambar bukan download ke hard disk kita, melainkan ditampilkan dulu di browser, baru bisa di download dan disimpan di komputer kita. Gimana, udah ngerti belum maksudku ? 🙂 Untuk lebih jelasnya apa yang aku maksud dengan window save as tadi bisa kalian lihat pada gambar di bawah ini

Save Window

Untuk sourcecode PHP nya silahkan lihat di bawah ini :

<?php
$namaFile = "lokasi file";
$ekstensi = strtolower(substr(strrchr($namaFile,"."),1));
switch($ekstensi){
	case "pdf"	: $ctype = "application/pdf"; break;
	case "exe"	: $ctype = "application/octet-stream"; break;
	case "zip"	: $ctype = "application/zip"; break;
	case "rar"	: $ctype = "application/rar"; break;
	case "doc"	: $ctype = "application/msword"; break;
	case "xls"	: $ctype = "application/vnd.ms-excel"; break;
	case "ppt"	: $ctype = "application/vnd.ms-powerpoint"; break;
	case "gif"	: $ctype = "image/gif"; break;
	case "png"	: $ctype = "image/png"; break;
	case "jpg"	: $ctype = "image/jpg"; break;
	default		: $ctype = "application/proses";
}

// perintah untuk force file
header("Pragma  : private");
header("Expires : 0");
header("Cache-Control  : must-revalidate, post-check=0, pre-check=0");
header("Cache-Control  : private", false);
header("Content-Type   : $ctype");
header("Content-Disposition : attachment; filename=\"".basename($namaFile)."\";");
header("Content-Transfer-Encoding : binary");
header("Content-Length : ".filesize($namaFile));
readfile($namaFile);
exit();
?>

Oke,,, selamat mencoba kawan – kawan 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *