File Helper menyediakan berbagai method untuk memanipulasi dan mendapatkan informasi file dengan mudah dan aman.
use Ay4t\Helper\HP;
$file = HP::File("/path/to/file.txt");Mendapatkan ukuran file dalam format yang mudah dibaca.
$result = HP::File("large-file.zip")->getHumanSize();
// Result: "1.5 MB"
$result = HP::File("image.jpg")->getHumanSize(0);
// Result: "2 MB"Mendapatkan MIME type file.
$result = HP::File("document.pdf")->getMimeType();
// Result: "application/pdf"
$result = HP::File("image.jpg")->getMimeType();
// Result: "image/jpeg"Mendapatkan ekstensi file.
$result = HP::File("Document.PDF")->getExtension();
// Result: "pdf"
$result = HP::File("Image.JPG")->getExtension(false);
// Result: "JPG"Memeriksa apakah file adalah gambar.
$result = HP::File("photo.jpg")->isImage();
// Result: true
$result = HP::File("document.pdf")->isImage();
// Result: falseMendapatkan dimensi gambar.
$result = HP::File("photo.jpg")->getImageDimensions();
// Result: ['width' => 1920, 'height' => 1080]Menyalin file ke lokasi baru.
$result = HP::File("original.txt")->copy("/backup/original.txt");
// Result: true/false
// Dengan overwrite
$result = HP::File("original.txt")->copy("/backup/original.txt", true);Memindahkan file ke lokasi baru.
$result = HP::File("old/file.txt")->move("new/file.txt");
// Result: true/falseMendapatkan waktu modifikasi file.
$result = HP::File("document.pdf")->getModifiedTime();
// Result: "2023-01-01 12:00:00"
$result = HP::File("document.pdf")->getModifiedTime("d F Y");
// Result: "01 January 2023"Menghitung hash file.
$result = HP::File("document.pdf")->getHash();
// Result: "d41d8cd98f00b204e9800998ecf8427e"
$result = HP::File("document.pdf")->getHash('sha1');
// Result: "da39a3ee5e6b4b0d3255bfef95601890afd80709"$file = HP::File("important.doc");
if ($file->isWritable()) {
// Buat backup dengan timestamp
$timestamp = date('Y-m-d-His');
$backupName = "backup-{$timestamp}.doc";
if ($file->copy("/backup/{$backupName}")) {
$info = [
'size' => $file->getHumanSize(),
'modified' => $file->getModifiedTime(),
'hash' => $file->getHash()
];
// Simpan info backup
}
}$upload = HP::File($_FILES['image']['tmp_name']);
if ($upload->isImage()) {
$dimensions = $upload->getImageDimensions();
if ($dimensions['width'] <= 2000 && $upload->getHumanSize(0) <= "5 MB") {
$upload->move("/uploads/images/new-image.jpg", true);
}
}- Selalu gunakan
isWritable()sebelum operasi write - Gunakan
getHash()untuk verifikasi integritas file - Gunakan
getHumanSize()untuk tampilan user-friendly - Validasi file gambar dengan
isImage()dangetImageDimensions() - Buat backup dengan
copy()sebelum operasi berbahaya
- Selalu periksa hasil operasi file untuk keamanan
- Gunakan
readSafely()untuk membaca file besar - Method
move()dancopy()akan membuat direktori jika belum ada - Batasi akses file sesuai dengan permissions yang tepat
- Selalu validasi tipe file sebelum memproses