protected function bindFields(\PDOStatement $statment, File $file) { $statment->bindValue(':fileName', $file->getFileName()); $statment->bindValue(':fileType', $file->getFileType()); $statment->bindValue(':fileSize', $file->getFileSize()); $statment->bindValue(':fileMediaInfo', $file->getFileMediaInfo()); $statment->bindValue(':fileKey', $file->getFileKey()); }
function addLogo(Brand $Brand) { if (isset($_FILES['fileLogoURL']) && $_FILES['fileLogoURL']['size'] > 0) { $errors = array(); $fileName = $_FILES['fileLogoURL']['name']; $tmpName = $_FILES['fileLogoURL']['tmp_name']; $fileSize = $_FILES['fileLogoURL']['size']; $fileType = $_FILES['fileLogoURL']['type']; $File = new File($fileName, $tmpName, $fileSize, $fileType); if ($fileSize > 2097152) { $errors[] = 'File phải nhỏ hơn 2 MB'; } if (!$File->isImageType()) { $errors[] = ""; } if (empty($errors) == true) { //remove Logo old $logo_Old = trim($Brand->getLogoURL(), '"'); if (file_exists($logo_Old)) { unlink($logo_Old); } //Add logo new $path = '../assets/images/logoBrands/' . $Brand->getBraID(); if (!file_exists($path)) { // neu k ton tai duong dan thu muc cua id nay thi tạo mới File::createDirectory($path); } $type = explode("/", $File->getFileType())[1]; $find = array(" ", "\\", "/", ":", "*", "?", "\"", "<", ">", "|"); $name = File::utf8convert(str_replace($find, '', $Brand->getBraName())); $pathNew = $path . '/logo_' . $name . "." . $type; $File->moveFile($pathNew); $Brand->setLogoURL($pathNew); $Brand->updateLogo(); } else { //print_r($errors); } if (empty($error)) { //echo "Success"; } } }
public static function isPdfFile($file) { if (File::getFileType($file) == "pdf") { return true; } return false; }
function addListImages(Product $Product) { $errors = array(); $listImage_remove = array(); $i = 1; $path = '../assets/images/productImages/' . $Product->getProID(); if (isset($_POST["txtListImage_remove"]) && !empty($_POST["txtListImage_remove"])) { $listImage_remove = explode(',', $_POST["txtListImage_remove"]); foreach ($listImage_remove as $key => $fileName_remove) { $path_deleteFile = $path . '/' . $fileName_remove; if (file_exists($path_deleteFile)) { unlink($path_deleteFile); array_splice($listImage_remove, $key, 1); } } } if (isset($_FILES['listImageFiles']) && $_FILES['listImageFiles']['size'] > 0) { foreach ($_FILES['listImageFiles']['tmp_name'] as $key => $tmp_name) { $insertImage = true; $fileName = $_FILES['listImageFiles']['name'][$key]; $fileSize = $_FILES['listImageFiles']['size'][$key]; $tmpName = $_FILES['listImageFiles']['tmp_name'][$key]; $fileType = $_FILES['listImageFiles']['type'][$key]; foreach ($listImage_remove as $fileName_remove) { if ($fileName == $fileName_remove) { $insertImage = false; break; } } if ($insertImage) { $File = new File($fileName, $tmpName, $fileSize, $fileType); if ($fileSize > 2097152) { $errors[] = 'File phải nhỏ hơn 2 MB'; } if (!$File->isImageType()) { $errors[] = "."; } if (empty($errors) == true) { if (!file_exists($path)) { File::createDirectory($path); } $type = explode("/", $File->getFileType())[1]; $find = array(" ", "\\", "/", ":", "*", "?", "\"", "<", ">", "|"); $name = File::utf8convert(str_replace($find, '', $Product->getProName())); $name = $pathNew = $path . '/' . $name . '_' . $i++; foreach (glob("{$path}/*") as $file) { $file = substr($file, 0, strrpos($file, '.')); if ($file == $pathNew) { $pathNew = $path . '/' . $name . '_' . $i++; } } $pathNew .= '.' . $type; $File->moveFile($pathNew); } else { //print_r($errors); } } } if (empty($error)) { } } }
/** * @brief 开始执行上传 * @return array 包含上传成功信息的数组 * $file = array( * name 如果上传成功,则返回上传后的文件名称,如果失败,则返回客户端名称 * size 上传附件大小 * fileSrc 上传文件完整路径 * dir 上传目录 * ininame 上传图片名 * flag -1:上传的文件超出服务器限制; -2:上传的文件超出浏览器限制; -3:上传的文件被部分上传; -4:没有找到上传的文件; -5:上传的文件丢失; * -6:上传的临时文件没有正确写入; -7:扩展名不允许上传; -8:上传的文件超出了程序的限制; -9:上传的文件中有木马病毒 ; 1:上传成功; * ext 上传附件扩展名 * ); */ public function execute() { //总的文件上传信息 $info = array(); foreach ($_FILES as $field => $file) { $fileInfo = array(); //不存在上传的文件名 if (!isset($_FILES[$field]['name']) || $_FILES[$field]['name'] == '') { continue; } //上传控件为数组格式 file[]格式 if (is_array($_FILES[$field]['name'])) { $keys = array_keys($_FILES[$field]['name']); foreach ($keys as $key) { $fileInfo[$key]['name'] = $_FILES[$field]['name'][$key]; //上传出现错误 if (isset($_FILES[$field]['error'][$key]) && $_FILES[$field]['error'][$key] != 0) { $fileInfo[$key]['flag'] = 0 - $_FILES[$field]['error'][$key]; } else { //获取扩展名 $fileext = File::getFileType($_FILES[$field]['tmp_name'][$key]); if (is_array($fileext) || $fileext == null) { $fileext = File::getFileSuffix($_FILES[$field]['name'][$key]); } //图片木马检测 if (in_array($fileext, $this->checkType) && !Safe::checkHex($_FILES[$field]['tmp_name'][$key])) { $fileInfo[$key]['flag'] = -9; } else { /*开始上传文件*/ //(1)上传类型不符合 if (!in_array($fileext, $this->allowType)) { $fileInfo[$key]['flag'] = -7; } else { if ($_FILES[$field]['size'][$key] > $this->maxsize) { $fileInfo[$key]['flag'] = -8; } else { //修改图片状态值 $fileInfo[$key]['name'] = date('Ymdhis') . mt_rand(100, 999) . '.' . $fileext; $fileInfo[$key]['dir'] = $this->dir; $fileInfo[$key]['size'] = $_FILES[$field]['size'][$key]; $fileInfo[$key]['ininame'] = $_FILES[$field]['name'][$key]; $fileInfo[$key]['ext'] = $fileext; $fileInfo[$key]['fileSrc'] = $fileInfo[$key]['dir'] . $fileInfo[$key]['name']; $fileInfo[$key]['flag'] = 1; if ($this->isForge == false) { if (is_uploaded_file($_FILES[$field]['tmp_name'][$key])) { File::mkdir($this->dir); move_uploaded_file($_FILES[$field]['tmp_name'][$key], $this->dir . $fileInfo[$key]['name']); } } else { File::xcopy($_FILES[$field]['tmp_name'][$key], $this->dir . $fileInfo[$key]['name']); } } } } } } } else { $fileInfo[0]['name'] = $_FILES[$field]['name']; //上传出现错误 if (isset($_FILES[$field]['error']) && $_FILES[$field]['error'] != 0) { $fileInfo[0]['flag'] = 0 - $_FILES[$field]['error']; } else { //获取扩展名 $fileext = File::getFileType($_FILES[$field]['tmp_name']); if (is_array($fileext) || $fileext == null) { $fileext = File::getFileSuffix($_FILES[$field]['name']); } //图片木马检测 if (in_array($fileext, $this->checkType) && !Safe::checkHex($_FILES[$field]['tmp_name'])) { $fileInfo[0]['flag'] = -9; } else { /*开始上传文件*/ //(1)上传类型不符合 if (!in_array($fileext, $this->allowType)) { $fileInfo[0]['flag'] = -7; } else { if ($_FILES[$field]['size'] > $this->maxsize) { $fileInfo[0]['flag'] = -8; } else { //修改图片状态值 $fileInfo[0]['name'] = date('YmdHis') . mt_rand(100, 999) . '.' . $fileext; $fileInfo[0]['dir'] = $this->dir; $fileInfo[0]['size'] = $_FILES[$field]['size']; $fileInfo[0]['ininame'] = $_FILES[$field]['name']; $fileInfo[0]['ext'] = $fileext; $fileInfo[0]['fileSrc'] = $fileInfo[0]['dir'] . $fileInfo[0]['name']; $fileInfo[0]['flag'] = 1; if ($this->isForge == false) { if (is_uploaded_file($_FILES[$field]['tmp_name'])) { File::mkdir($this->dir); move_uploaded_file($_FILES[$field]['tmp_name'], $this->dir . $fileInfo[0]['name']); } } else { File::xcopy($_FILES[$field]['tmp_name'], $this->dir . $fileInfo[0]['name']); } } } } } } $info[$field] = $fileInfo; } return $info; }