Upload file merupakan salah satu proses di dalam dunia web, berikut merupakan contoh script php untuk upload multi file dengan menggunakan framework zend 1. bagi yang tidak menggunakan framework ini, anda bisa skip.
// init upload file value
$file_1 = ”;
$file_2 = ”;
$file_3 = ”;
$file_4 = ”;
$upload = new Zend_File_Transfer_Adapter_Http();
// Limit the extensions to jpg and png files but use array notation
$upload->addValidator(‘Extension’, false, array(‘png’, ‘jpg’, ‘bmp’, ‘pdf’, ‘zip’, ‘rar’));
$adapter->addValidator(‘Size’, false, 3024000); // limit to 3 Mb
// set dest
$upload->setDestination(APPLICATION_PATH. “/../public/uploads/”);
$files = $upload->getFileInfo();
// init array info name
$arrInfoNames = array();
foreach($files as $file => $fileInfo) {
if ($upload->isUploaded($file)) {
if ($upload->isValid($file)) {
//
$info = $upload->getFileInfo($file);
// jika nama file sama dengan nama sebelumnya
// file akan dianggap sama dengan file sebelumnya
if(!in_array($info[$file][‘name’], $arrInfoNames)) {
// rename
$arrFileName = explode(‘.’,$info[$file][‘name’]);
$file_name = $this->view->SetToURI(
strtolower($arrFileName[0])) . ‘.’ . $arrFileName[1];
$file_name = date(“Ymdhis”) . rand() . “-” . $file_name;
$upload->addFilter(‘Rename’,
APPLICATION_PATH . “/../public/uploads/” . $file_name);
// And then we call receive manually
$upload->receive($file);
// simpan nama file di array info
// untuk pengecekan duplikasi nama file
$arrInfoNames[] = $info[‘name’];
// set value table
if(array_key_exists(‘file_1’, $info))
$file_1 = $file_name;
if(array_key_exists(‘file_2’, $info))
$file_2 = $file_name;
if(array_key_exists(‘file_3’, $info))
$file_3 = $file_name;
if(array_key_exists(‘file_4’, $info))
$file_4 = $file_name;
}
}
}
}
pada contoh di atas, file yang bisa diupload adalah 4 file, jika ingin lebih banyak lagi file yang akan diupload anda bisa edit kode diatas dan tambahkan file uploadnya. wassalam.