Sekilas tentang Kams File Manager versi 2.0

Kamshory Developer merilis Kams File Mannager versi 2.0. File manager ini merupakan penyempurnaan dari Kams File Manager versi 1.0. File manager ini sangat cocok untuk semua aplikasi berbasis web yang menyediakan modul untuk mengunggah file dan mengaturnya.

Kams File Manager dibuat dengan bahasa PHP pada sisi server dan JavaScript pada sisi client. Kams File Manager menggunakan library jQuery dan jQuery UI sehingga tampilannya menjadi lebih menarik karena ditambah dengan beberapa effect.

Kams File Manager memungkinkan pengguna untuk mengatur letak penyimpanan file serta mengatur URL dari file yang dipilih untuk disesuaikan dengan aplikasi lain. Untuk direktori file, Kams File Manager menggunakan alamat absolute sehingga lebih aman karena program hanya akan mengakses sebuah direktori tertentu. Untuk URL file, Kams File Manager memperbolehkan pengguna menggunakan alamat relative atau absolute. Jika diperlukan, pengguna disarankan untuk menggunakan file .htaccess untuk mengatur ulang URL dari file.

Kams File Manager mempunyai puluhan fungsi operasi file dan direktori yang umum. Selain itu, Kams File Manager juga menyediakan fungsi untuk mengubah gambar, file teks, dan dapat menampilan gambar, memutar video dan audio, serta menanyangkan file shock wave dan file PDF.

Kams File Manager menggunakan istilah "base" yang mengacu kepada direktori root untuk penyimpanan file. Jika sebuah nama file atau direktori diawali dengan "base", maka nama tersebut akan diganti dengan alamat absolut dari direktori root.

Kebutuhan Sistem

  1. Server web Apache 2
  2. PHP 5
    Adapun modul tambahan dari PHP adalah sebagai berikut:
    1. PHP GD untuk pengolahan gambar
    2. PHP ZIP untuk mengompres dan mengekstrak file
    3. PHP EXIF untuk informasi gambar (pilihan)
  3. Browser dengan dukungan JavaScript dan framework jQuery serta jQuery UI

Tampilan Kams File Manager

Jendela Kams File Manager terbagi menjadi 2 yaitu daerah direktori untuk menampilkan direktori dan daerah file untuk menampilkan direktori dan file yang berada pada direktori yang sedang dibuka. Daerah direktori menampilkan direktori secara bertingkat terhitung dari direktori root untuk penyimpanan file. Kams File Manager secara otomatis akan menambah anak di bawah sebuah daftar direktori jika pengguna membuka sebuah direktori yang berada satu tingkat di bawahnya.

Kams File Manager menyediakan dua macam tampilan untuk file yaitu tampilan dengan tabel dan tampilan dengan gambar kecil (thumbnail). Pada tampilan dengan gambar kecil, Kams File Manager menampilkan ikon sesuai dengan ekstensi dari file tersebut. Khusus untuk file dengan format gambar seperti PNG, JPEG, dan GIF, Kams File Manager menampilkan isi dari file tersebut meskipun pengguna mengubah ekstensi dari file tersebut. Meskipun demikian, pengguna dapat memilih untuk menonaktifkan thumbnail.

Kams File Manager juga menampilkan gambar yang yang ada di dalam sub direktori di bawahnya. Dengan demikian, pengguna bisa mengetahui isi dari sebuah direktori meskipun direktori tersebut belum dibuka.

Jika pengguna mengubah ekstensi file gambar (JPG, JPEG, PNG, dan GIF) menjadi TXT atau HTML, Kams File Manager tetap akan mengenali bahwa file tersebut merupakan file gambar, bukan file teks. Dengan demikian, Kams File Manager akan menampilkan context menu sebagaimana context menu pada file gambar. Pengguna juga tetap dapat menampilkan gambar tersebut serta mengubahnya.

Kams File Manager menyediakan context menu pada kedua tampilan. Context menu tersebut berbeda-beda untuk direktori atau file dengan ekstensiter tentu. Beberapa ekstensi tertentu seperti gambar, video, audio, flash, atau PDF, mendapat perlakuan khusus.

Kams File Manager juga menyediakan context menu untuk daerah file. Context menu tersebut berhubungan dengan direktori yang sedang dibuka serta berhubungan dengan beberapa file dan direktori yang dipilih.

Pada saat pengguna memilih satu atau beberapa file kemudian mengubah tipe tampilan dari tabel menjadi thumbnail atau sebaliknya, Kams File Manager tetap menjaga pilihan pengguna selama perubahan dilakukan dengan AJAX tanpa memuat ulang halaman secara keseluruhan. Dengan cara ini, pengguna bebas untuk mengubah tampilan kapanpun diperlukan tanpa kehilangan pilihan file.

Pada saat pengguna mendrag dan mendrop sebuah file atau direktori ke sebuah direktori lain yang mempunyai lokasi yang sama, maka file atau direktori yang didrag dan didrop tersebut akan dipindahkan ke dalam direktori target di mana file atau direktori tersebut didrop. Operasi ini sama dengan operasi "move file".

Fungsi dan Operasi pada Kams File Manager versi 2.0

Berikut ini merupakan fungsi yang ada pada Kams File Manager

  1. Create New File
    Fungsi untuk membuat file baru pada sebuah direktori
  2. Create New Directory
    Fungsi untuk membuat direktori baru pada sebuah direktori
  3. Select File *
    Fungsi ini merupakan fungsi yang ddapat dihubungkan dengan aplikasi lain seperti editor HTML atau form lainnya
  4. Open Directory
    Membuka  sebuah direktori
  5. Copy File
    Menyimpan alamat sebuah file yang akan disalin ke direktori lain. File baru akan disalin pada proses "Paste File" setelah "Copy File" dilakukan
  6. Copy Selected File
    Menyimpan alamat beberapa file yang dipilih yang akan disalin ke direktori lain. File baru akan disalin pada proses "Paste File" setelah "Copy File" dilakukan
  7. Copy Directory
    Menyimpan alamat sebuah direktori yang akan disalin ke direktori lain. Direktori baru akan disalin pada proses "Paste File" setelah "Copy Directory" dilakukan
  8. Copy Selected Directory
    Menyimpan alamat beberapa direktori yang dipilih yang akan disalin ke direktori lain. Direktori baru akan disalin pada proses "Paste File" setelah "Copy File" dilakukan
  9. Cut File
    Menyimpan alamat sebuah file yang akan dipindahkan ke direktori lain. File baru akan dipindahkan pada proses "Paste File" setelah "Cut File" dilakukan
  10. Cut Directory
    Menyimpan alamat sebuah direktori yang akan dipindahkan ke direktori lain. Direktori baru akan dipindahkan pada proses "Paste File" setelah "Cut Directory" dilakukan
  11. Cut Selected File
    Menyimpan alamat beberapa file yang dipilih yang akan dipindahkan ke direktori lain. File baru akan dipindahkan pada proses "Paste File" setelah "Cut Selected File" dilakukan
  12. Cut Selected Directory
    Menyimpan alamat beberapa direktori yang dipilih yang akan dipindahkan ke direktori lain. Direktori baru akan dipindahkan pada proses "Paste File" setelah "Cut Selected Direktory" dilakukan
  13. Move File
    Memindahkan sebuah file ke direktori lain. File akan langsung dipindahkan tanpa memerlukan proses "Paste File"
  14. Move Directory
    Memindahkan sebuah direktori ke direktori lain. Direktori akan langsung dipindahkan tanpa memerlukan proses "Paste File"
  15. Move Selected File
    Memindahkan beberapa file yang dipilih ke direktori lain. File akan langsung dipindahkan tanpa memerlukan proses "Paste File"
    Move Selected Directory
    Memindahkan beberapa direktori yang dipilih ke direktori lain. Direktori akan langsung dipindahkan tanpa memerlukan proses "Paste File"
  16. Compress File
    Mengompres sebuah file dengan format ZIP dengan nama tertentu
  17. Compress Directory
    Mengompres semua file dalam sebuah direktori dengan format ZIP dengan nama tertentu
  18. Compress Selected File
    Mengompres beberapa file yang dipilih dengan format ZIP dengan nama tertentu
  19. Compress Selected Directory
    Mengompres semua file yang ada dalam beberapa direktori yang dipilih dengan format ZIP dengan nama tertentu
  20. Paste File
    Menyalin atau memindahkan file yang terlah dipilih pada proses "Copy File"
  21. Paste Directory
    Menyalin atau memindahkan direktori yang terlah dipilih pada proses "Copy Directory"
  22. Rename File
    Mengubah nama sebuah file tertentu
  23. Rename Directory
    Mengubah nama sebuah direktori tertentu
  24. Rename First Selected File
    Fungsi ini sama dengan "Rename File" dan "Rename Directory" yang dapat diakses dari toolbar setelah memilih sebuah file atau direktori tertentu. Apabila pengguna memilih beberapa file atau direktori, maka program hanya mengambil satu pilihan pertama. Program secara otomatis mendeteksi apakah pilihan pertama merupakan file atau direktori. Fungsi ini disediakan bagi pengguna yang menggunakan browser yang tidak mendukung context menu
  25. Delete File
    Menghapus sebuah file tertentu
  26. Delete Selected File
    Menghapus beberapa file yang dipilih
  27. Delete Directory
    Menghapus direktori
  28. Delete Selected Directory
    Menghapus beberapa direktori yang dipilih
  29. Display File Properties
    Menampilkan informasi dari sebuah file
  30. Display Directory Properties
    Menampilkan informasi dari sebuah direktori
  31. Download File
    Mengunduh sebuah file tertentu
  32. Extract File
    Mengekstrak sebuah file ZIP ke direktori tertentu
  33. Extract First Selected File
    Fungsi ini sama dengan "Extract File" yang dapat diakses dari toolbar setelah memilih sebuah file tertentu. Apabila pengguna memilih beberapa file atau direktori, maka program hanya mengambil satu file pilihan pertama dan mengabaikan direktori yang dipilih. Fungsi ini disediakan bagi pengguna yang menggunakan browser yang tidak mendukung context menu. Perlu diingat bahwa JavaScript tidak dapat menentukan apakah file tersebut merupakan file hasil kompresi atau tidak karena PHP tidak memeriksana terlebih dahulu. Sebelum menampilkan daftar, PHP hanya menganggap bahwa file dengan ekstensi .zip mempunyai tipe MIME application/zip namun tidak benar-benar memeriksa ininya. PHP akan memeriksa file tersebut pada saat pengguna mengekstraknya. Jika file gagal diekstrak, maka Kams File Manager akan memberitahukannya kepada pengguna
  34. Edit File
    Mengubah isi sebuah file teks
  35. Preview Image
    Menampilkan gambar dari sebuah file bertipe "image"
  36. Up Directory
    Membuka direktori di atasnya
  37. Upload File
    Mengunggah sebuah atau beberapa file yang dipilih
  38. Check File
    Memilih semua file yang ada di dalam sebuah direktori yang sedang dibuka
  39. Uncheck File
    Membatalkan semua pilihan baik yang dipilih secara manual maupun yang dipilih dengan operasi "Check File"
  40. Rotate Clockwise
    Memutar gambar searah jarum jam
  41. Rotate Counterclockwise
    Memutar gambar berlawanan arah jarum jam
  42. Flip Vertical
    Membalik gambar secara vertikal
  43. Flip Horizontal
    Membalik gambar secara horizontal
  44. Resize Image
    Mengubah dimensi gambar. Kams File Manager menyediakan pilihan untuk mengubah rasio atau mempertahankan rasio dengan melakukan pemotongan gambar demi mempertahankan rasio
  45. Play Audio Embed
    Memainkan file audio dengan tag <EMBED>
  46. Play Audio HTML5
    Memainkan file audio dengan tag <AUDIO>
  47. Play Audio IFRAME
    Memainkan file audio dengan tag <IFRAME>
  48. Play Video Embed
    Memainkan file video dengan tag <EMBED>
  49. Play Video HTML5
    Memainkan file video dengan tag <VIDEO>
  50. Play Video IFRAME
    Memainkan file video dengan tag <IFRAME>
  51. Play Video with Moxie Player
    Memainkan file video dengan  Moxie Player

Editor Gambar pada Kams Editor versi 2.0

Kams File Manager memungkinkan pengguna mengubah gambar dengan format JPEG, GIF, dan PNG. Karena keterbatasan kemampuan GD PHP dalam pengolahan gambar, Kams File Manager mengganti warna transparan pada file GIF dan PNG menjadi warna putih. File akan kehilangan seluruh informasi yang terkandung di dalam header file gambar hasil fotografi seperti tanggal pengambilan, merek dan model kamera, posisi lintang, posisi bujur, serta ketinggian. Selain itu, GIF animasi juga hanya akan diambil frame pertama saja sedangkan frame lain akan diabaikan.

Kams File Manager akan menyimpan gambar hasil pada file sumber. Jika pengguna tidak ingin kehilangan file asli, pengguna diwajibkan untuk membuat file cadangan dengan cara menyalinnya ke direktori lain.

Informasi Gambar

Kams File Manager juga menampilkan beberapa informasi gambar seperti format gambar, ukuran gambar, ukuran file, tanggal pembuatan file, tanggal modifikasi file, dan sebagainya. Khusus untuk gambar hasil fotografi, Kams File Manager juga menampilkan informasi EXIF gambar berupa:

  1. Tanggal pengambilan gambar
  2. Merek dan model kamrea
  3. Posisi lintang (altitude)
  4. Posisi bujur (longitude)
  5. Ketinggian dari permukaan laut (altitude)

Informasi EXIF ini membutuhkan modul PHP tambahan yaitu PHP EXIF. Apabila modul tersebut tidak ada, maka informasi EXIF tidak dapat ditampilkan namin tidak menyebabkan terjadinya kesalahan program.

Konfigurasi Kams File Manager versi 2.0

$cfg->rootdir = dirname(__FILE__)."/data";
$cfg->rooturl = "data";
$cfg->thumbnail = true;
$cfg->thumbnail_quality = 75;
$cfg->authentification_needed = false;
$cfg->readonly = false;
$cfg->allow_upload_all_file = true;
$cfg->allow_upload_image = true;
$cfg->delete_forbidden_extension = true;
$cfg->forbidden_extension = array('exe','php','htaccess');

$cfg->rootdir adalah direktori penyimpanan file di server. Direktori tersebut dapat diubah sesuai dengan keinginan. Untuk aplikasi dengan sistem banyak pengguna, $cfg->rootdir bisa menggunakan ID pengguna agar file yang diunggah oleh pengguna disimpan di dalam direktori yang terpisah.

$cfg->rooturl adalah prefiks (awalan) dari URL file. Awalan ini dapat berupa alamat absolut yang mengandung :// atau alamat relative yang mengandung ../.

$cfg->thumbnail adalah pilihan apakah pengguna akan menggunakan thumbnail untuk file gambar atau tidak. Penggunaan thumbnail akan memberatkan server dan akses jika disebuah direktori terdapt hingga ratusan file.

$cfg->authentification_needed adalah pilihan apakah file manager membutuhkan otentifikasi pengguna. Jika Kams File Manager digunakan pada sistem online, maka $cfg->authentification_needed diwajibkan.

Otentifikasi dihubungkan dengan modul login sistem sehingga Kams File Manager hanya bisa diakses oleh pengguna yang masuk. File auth.php dan login.php dapat diubah sesuai dengan kebutuhan.

Sistem Keamanan

Kams File Manager mempunyai sistem keamanan dengan otentifikasi dan filter. Otentifikasi hanya memperbolehkan pengguna yang masuk yang dapat menggunakan program sedangkan filter hanya memperbolehkan pengguna mengunggah file tertentu saja.

Jika $cfg->delete_forbidden_extension diatur bernilai true, sistem secara otomatis mencari semua file dengan ekstensi yang ada di dalam array $cfg->forbidden_extension pada sebuah direktori tertentu. Apabila ditemukan, maka file tersebut akan langsung dihapus tanpa memerlukan konfirmasi. Penghapusan ini dilakukan pada operasi:

  1. Upload file
  2. Rename file
  3. Extract file

Dengan adanya sistem keamanan ini, pengguna tidak dapat memasukkan file terlarang (misalnya PHP atau EXE) meskipun telah mengubah namanya atau telah mengompresnya ke dalam sebuah file ZIP untuk kemudian diekstrak.

Selain dengan menggunakan filter, pengguna juga dapat menggunakan file .htaccess yang disimpan di dalam direktori di atasnya. Akan tetapi, pengguna harus mengatur di mana file akan disimpan karena pengaturan ini akan berlaku untuk direktori yang bersangkutan dan direktori di bawahnya. Pengguna dapat membuat direktori 2 tingkat atau lebih.

Sebagai contoh:

Program disimpan di dalam direktori public_html. Maka lokasi penyimpanan file yang akan diupload harus 2 tingkat di bawahnya misalnya public_html/data/upload. File .htaccess dapat disimpan di direktori public_html/data sedangkan $cfg->rootdir adalah public_html/data/upload.

Berikut ini adalah beberapa contoh kode .htaccess untuk mencegah eksekusi file

File Tertentu Dianggap Sebagai File Teks Biasa

AddType text/plain .php .pl .py .php .jsp .asp .hta .vbs .cgi

File Tertentu Dipaksa Menjadi File Teks Biasa

<FilesMatch "\.(php|pl|py|jsp|asp|hta|vbs|cgi)$">
ForceType text/plain
</FilesMatch>

File Tertentu Tidak Boleh Diakses

<FilesMatch "\.(php|pl|py|jsp|asp|hta|vbs|cgi)$">
Order Deny,Allow  
Deny from All  
</FilesMatch>

Atau, jika ingin agar hanya file gambar saja (JPG, JPEG, GIF, dan PNG) yang dapat diakses, pengguna dapat menggunakan kode berikut ini:

<Files ^(*.jpeg|*.jpg|*.png|*.gif)>     
order deny,allow     
deny from all
</Files>

Dengan konfigurasi di atas, meskipun pengguna diperbolehkan mengunggah file dengan ekstensi tersebut, akan tetapi server tidak akan mengeksekusinya.

Download

Source code dari Kams File Manager dapat didownload di sini