Exemplo n.º 1
0
 /**
  * 保存圖像
  * @param int $fileNameType 文件名類型 0使用原文件名,1使用指定的文件名,2在原文件名加上後綴,3產生隨機文件名
  * @param string $folder 文件夾路徑 為空為與原文件相同
  * @param string $param 參數$fileNameType為1時為文件名2時為後綴
  * @return void
  */
 public function save($fileNameType = 0, $folder = NULL, $param = '_miniature')
 {
     if ($folder == NULL) {
         $folder = dirname($this->fileName) . DIRECTORY_SEPARATOR;
     }
     $fileExtName = FileSystem::fileExt($this->fileName, true);
     $fileBesicName = FileSystem::getBasicName($this->fileName, false);
     switch ($fileNameType) {
         case 1:
             $newFileName = $folder . $param;
             break;
         case 2:
             $newFileName = $folder . $fileBesicName . $param . $fileExtName;
             break;
         case 3:
             $tmp = date('YmdHis');
             $fileBesicName = $tmp;
             $i = 0;
             while (file_exists($folder . $fileBesicName . $fileExtName)) {
                 $fileBesicName = $tmp . $i;
                 $i++;
             }
             $newFileName = $folder . $fileBesicName . $fileExtName;
             break;
         default:
             $newFileName = $this->fileName;
             break;
     }
     $this->display($newFileName);
     return $newFileName;
 }
Exemplo n.º 2
0
 /**
  * 上传文件
  * @param string $fileField  要上传的文件如$_FILES['file']
  * @param string $destFolder 上传的目录,会自动建立
  * @param string $fileTypes   上传后文件命名方式 0使用原文件名 1使用当前时间戳作为文件名
  * @return int 
  * @access public
  */
 public function upload($fileField, $destFolder = './', $fileNameType = 1)
 {
     switch ($fileField['error']) {
         case UPLOAD_ERR_OK:
             //其值为 0,没有错误发生,文件上传成功。
             $uploadSucceed = true;
             break;
         case UPLOAD_ERR_INI_SIZE:
             //其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
         //其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
         case UPLOAD_ERR_FORM_SIZE:
             //其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
             $errorMsg = '文件上传失败!失败原因:文件大小超出限制!';
             $errorCode = -103;
             $uploadSucceed = false;
             break;
         case UPLOAD_ERR_PARTIAL:
             //值:3; 文件只有部分被上传。
             $errorMsg = '文件上传失败!失败原因:文件只有部分被上传!';
             $errorCode = -101;
             $uploadSucceed = false;
             break;
         case UPLOAD_ERR_NO_FILE:
             //值:4; 没有文件被上传。
             $errorMsg = '文件上传失败!失败原因:没有文件被上传!';
             $errorCode = -102;
             $uploadSucceed = false;
             break;
         case UPLOAD_ERR_NO_TMP_DIR:
             //其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
             $errorMsg = '文件上传失败!失败原因:找不到临时文件夹!';
             $errorCode = -102;
             $uploadSucceed = false;
             break;
         case UPLOAD_ERR_CANT_WRITE:
             //其值为 7,文件写入失败。PHP 5.1.0 引进。
             $errorMsg = '文件上传失败!失败原因:文件写入失败!';
             $errorCode = -102;
             $uploadSucceed = false;
             break;
         default:
             //其它错误
             $errorMsg = '文件上传失败!失败原因:其它!';
             $errorCode = -100;
             $uploadSucceed = false;
             break;
     }
     if ($uploadSucceed) {
         if ($fileField['size'] > $this->maxFileSize) {
             $errorMsg = '文件上传失败!失败原因:文件大小超出限制!';
             $errorCode = -103;
             $uploadSucceed = false;
         }
         if ($uploadSucceed) {
             $fileExt = FileSystem::fileExt($fileField['name']);
             if (!in_array(strtolower($fileExt), $this->allowFileTypes)) {
                 $errorMsg = '文件上传失败!失败原因:文件类型不被允许!';
                 $errorCode = -104;
                 $uploadSucceed = false;
             }
         }
     }
     if ($uploadSucceed) {
         if (!is_dir($destFolder) && $destFolder != './' && $destFolder != '../') {
             $dirname = '';
             $folders = explode('/', $destFolder);
             foreach ($folders as $folder) {
                 $dirname .= $folder . '/';
                 if ($folder != '' && $folder != '.' && $folder != '..' && !is_dir($dirname)) {
                     mkdir($dirname);
                 }
             }
             chmod($destFolder, 0777);
         }
         switch ($fileNameType) {
             case 1:
                 $fileName = date('YmdHis');
                 $dot = '.';
                 $fileFullName = $fileName . $dot . $fileExt;
                 $i = 0;
                 //判断是否有重名文件
                 while (is_file($destFolder . $fileFullName)) {
                     $fileFullName = $fileName . $i++ . $dot . $fileExt;
                 }
                 break;
             case 2:
                 $fileFullName = date('YmdHis');
                 $i = 0;
                 //判断是否有重名文件
                 while (is_file($destFolder . $fileFullName)) {
                     $fileFullName = $fileFullName . $i++;
                 }
                 break;
             default:
                 $fileFullName = $fileField['name'];
                 break;
         }
         if (@move_uploaded_file($fileField['tmp_name'], $destFolder . $fileFullName)) {
             return $fileFullName;
         } else {
             $errorMsg = '文件上传失败!失败原因:本地文件系统读写权限出错!';
             $errorCode = -105;
             $uploadSucceed = false;
         }
     }
     if (!$uploadSucceed) {
         throw new Exception($errorMsg, $errorCode);
     }
 }
Exemplo n.º 3
0
 /**
  * 返回指定路径中符合条件的文件和文件夹列表  
  * @param string $path
  * @param array $condition
  * @param string $sort
  * @return array
  */
 public static function ls($path, $condition = array(), $sort = 'ASC', $withPath = false)
 {
     $result = array();
     if (is_dir($path) && ($handle = opendir($path))) {
         while (false !== ($file = readdir($handle))) {
             if ($file != '.' && $file != '..') {
                 $valid = true;
                 if ($condition) {
                     foreach ($condition as $name => $value) {
                         switch ($name) {
                             case 'fileext':
                                 if (!$fileext_list) {
                                     $fileext_list = explode('|', $value);
                                 }
                                 if ($fileext_list) {
                                     $valid = in_array(FileSystem::fileExt($file), $fileext_list);
                                 }
                                 break;
                             case 'fileonly':
                                 $valid = !$value || is_file($path . '/' . $file);
                                 break;
                             case 'folderonly':
                                 $valid = !$value || is_dir($path . '/' . $file);
                                 break;
                             case 'filename':
                                 if ($value) {
                                     $valid = $value == basename($file, FileSystem::fileExt($file, true));
                                 }
                                 break;
                         }
                         if (!valid) {
                             break;
                         }
                     }
                 }
                 if ($valid) {
                     $result[] = $withPath ? $path . '/' . $file : $file;
                 }
             }
         }
         closedir($handle);
     }
     switch ($sort) {
         case 'ASC':
             sort($result);
             break;
         case 'DESC':
             rsort($result);
             break;
     }
     return $result;
 }
Exemplo n.º 4
0
 public function upload($fileField, $destFolder = './', $fileNameType = 1)
 {
     switch ($fileField['error']) {
         case UPLOAD_ERR_OK:
             $upload_succeed = true;
             break;
         case UPLOAD_ERR_INI_SIZE:
         case UPLOAD_ERR_FORM_SIZE:
             $errorMsg = '';
             $errorCode = -103;
             $upload_succeed = false;
             break;
         case UPLOAD_ERR_PARTIAL:
             $errorMsg = '';
             $errorCode = -101;
             $upload_succeed = false;
             break;
         case UPLOAD_ERR_NO_FILE:
             $errorMsg = '';
             $errorCode = -102;
             $upload_succeed = false;
             break;
         case UPLOAD_ERR_NO_TMP_DIR:
             $errorMsg = '';
             $errorCode = -102;
             $upload_succeed = false;
             break;
         case UPLOAD_ERR_CANT_WRITE:
             $errorMsg = '';
             $errorCode = -102;
             $upload_succeed = false;
             break;
         default:
             $errorMsg = '';
             $errorCode = -100;
             $upload_succeed = false;
             break;
     }
     if ($upload_succeed) {
         if ($fileField['size'] > $this->maxFileSize) {
             $errorMsg = '';
             $errorCode = -103;
             $upload_succeed = false;
         }
         if ($upload_succeed) {
             $fileExt = FileSystem::fileExt($fileField['name']);
             if (!in_array(strtolower($fileExt), $this->allowFileTypes)) {
                 $errorMsg = '';
                 $errorCode = -104;
                 $upload_succeed = false;
             }
         }
     }
     if ($upload_succeed) {
         if (!is_dir($destFolder) && $destFolder != './' && $destFolder != '../') {
             $dirname = '';
             $folders = explode('/', $destFolder);
             foreach ($folders as $folder) {
                 $dirname .= $folder . '/';
                 if ($folder != '' && $folder != '.' && $folder != '..' && !is_dir($dirname)) {
                     mkdir($dirname);
                     chmod($dirname, 0777);
                 }
             }
             chmod($destFolder, 0777);
         }
         switch ($fileNameType) {
             case 1:
                 $fileName = date('YmdHis');
                 $dot = '.';
                 $fileFullName = $fileName . $dot . $fileExt;
                 $i = 0;
                 while (is_file($destFolder . $fileFullName)) {
                     $fileFullName = $fileName . $i++ . $dot . $fileExt;
                 }
                 break;
             case 2:
                 $fileFullName = date('YmdHis');
                 $i = 0;
                 while (is_file($destFolder . $fileFullName)) {
                     $fileFullName = $fileFullName . $i++;
                 }
                 break;
             default:
                 $fileFullName = $fileField['name'];
                 break;
         }
         if (@move_uploaded_file($fileField['tmp_name'], $destFolder . $fileFullName)) {
             return $fileFullName;
         } else {
             $errorMsg = '';
             $errorCode = -105;
             $upload_succeed = false;
         }
     }
     if (!$upload_succeed) {
         //			throw new Exception($errorMsg,$errorCode);
     }
 }