Menampilkan file PDF dalam aplikasi web bisa menjadi hal yang membahayakan jika tidak dilakukan dengan benar. Dalam hal ini, kita akan membahas tentang cara menampilkan file PDF yang aman di aplikasi Yii Framework, contoh spesifik di artikel ini, file pdf dapat di akses hanya oleh user/ view id tersebut.
ada beberapa saran dari saya untuk memulai.
- Upload file PDF ke server: Pertama-tama, pastikan bahwa file PDF yang ingin ditampilkan sudah terupload ke server.
- Validasi tipe file: Validasi tipe file PDF dengan menggunakan fungsi PHP seperti
mime_content_type
ataufinfo_file
sebelum menampilkan file PDF. Ini akan memastikan bahwa hanya file PDF yang benar yang dapat ditampilkan, contoh yang saya berikan untuk penerapannya di Yii, berikut kodenya, simpan di model anda.
array('variabel', 'file', 'types'=>'pdf','maxSize'=>1024 * 1024 * 1,'allowEmpty' => false, 'on'=>'create'), - Proteksi akses file: Pastikan bahwa file PDF hanya dapat dibaca oleh pengguna yang memiliki hak akses yang sesuai. Ini bisa dilakukan dengan memastikan bahwa file PDF tidak bisa diakses secara langsung melalui URL.
langsung saja kita terapkan di aplikasi yii.
pertama, buat di view anda koding berikut :
<?php echo CHtml::link('Lihat File', array( 'ControllerAnda/viewPdf', 'id'=>$value->id ),array('class' => 'btn btn-warning btn-sm','target'=>'_blank') ); ?>
koding di atas, begitu kita klik maka akan menampilkan tab baru.
setelah itu masuk ke folder controller anda, dan pasang koding ini :
public function actionViewPdf($id) { $model=$this->loadModel($id); $filename = $model->file; $filepath = Yii::getPathOfAlias('webroot').'/lampiran/' . $filename; if(file_exists($filepath)) { // Header pdf ini yang berfungsi membaca file pdf anda. header('Content-type: application/pdf'); header('Content-Disposition: inline; filename="' . $filename . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($filepath)); header('Accept-Ranges: bytes'); // Render the file readfile($filepath); } else { // PDF doesn't exist so throw an error or something } }
contoh tampilan yang saya buat.
dari gambar di atas, kita telah membuat tombol link (yang warna kuning) ketika di klik lihat file, maka akan tampil tab baru seperti gambar di bawah ini.
url di atas memanggil file pdf lewat controller, sehingga file tidak dilihat secara langsung di url, sehingga ini diharapkan file yang kita miliki aman, karena tidak di akses secara langsung via url.
terimakasih, semoga bermanfaat.
baca juga artikel tentang PHP di website ini.
One thought on “Menampilkan File PDF yang Aman di Aplikasi PHP dan Yii Framework”