public function addFile(array $fileInfo = array(), UploadedFile $originalFile = null)
 {
     $errors = FileToolkit::validateFileExtension($originalFile);
     if ($errors) {
         @unlink($originalFile->getRealPath());
         throw $this->createServiceException("该文件格式,不允许上传。");
     }
     $uploadFile = array();
     $uploadFile['storage'] = 'local';
     $uploadFile['filename'] = $originalFile->getClientOriginalName();
     $uploadFile['ext'] = FileToolkit::getFileExtension($originalFile);
     $uploadFile['size'] = $originalFile->getSize();
     $filename = FileToolkit::generateFilename($uploadFile['ext']);
     $uploadFile['hashId'] = "course/{$filename}";
     $uploadFile['convertHash'] = "ch-{$uploadFile['hashId']}";
     $uploadFile['convertStatus'] = 'none';
     $uploadFile['type'] = FileToolkit::getFileTypeByExtension($uploadFile['ext']);
     $uploadFile['isPublic'] = empty($fileInfo['isPublic']) ? 0 : 1;
     $uploadFile['canDownload'] = empty($uploadFile['canDownload']) ? 0 : 1;
     $uploadFile['updatedUserId'] = $uploadFile['createdUserId'] = $this->getCurrentUser()->id;
     $uploadFile['updatedTime'] = $uploadFile['createdTime'] = time();
     $targetPath = $this->getFilePath('course', $uploadFile['isPublic']);
     $originalFile->move($targetPath, $filename);
     return $uploadFile;
 }
 public function addFile($targetType, $targetId, array $fileInfo = array(), UploadedFile $originalFile = null)
 {
     if (!ArrayToolkit::requireds($fileInfo, array('filename', 'key', 'size'))) {
         throw $this->createServiceException('参数缺失,添加用户文件失败!');
     }
     $uploadFile = array();
     $uploadFile['targetId'] = $targetId;
     $uploadFile['targetType'] = $targetType;
     $uploadFile['hashId'] = $fileInfo['key'];
     $uploadFile['filename'] = $fileInfo['filename'];
     $uploadFile['ext'] = pathinfo($uploadFile['filename'], PATHINFO_EXTENSION);
     $uploadFile['size'] = (int) $fileInfo['size'];
     $uploadFile['etag'] = empty($fileInfo['etag']) ? '' : $fileInfo['etag'];
     $uploadFile['length'] = empty($fileInfo['length']) ? 0 : intval($fileInfo['length']);
     $uploadFile['metas'] = $this->encodeMetas(empty($fileInfo['metas']) ? array() : $fileInfo['metas']);
     $uploadFile['metas2'] = $this->encodeMetas(empty($fileInfo['metas2']) ? array() : $fileInfo['metas2']);
     if ($fileInfo['lazyConvert']) {
         $fileInfo['convertHash'] = "lazy-{$uploadFile['hashId']}";
     }
     if (empty($fileInfo['convertHash'])) {
         $uploadFile['convertHash'] = "ch-{$uploadFile['hashId']}";
         $uploadFile['convertStatus'] = 'none';
         $uploadFile['convertParams'] = '';
     } else {
         if ('document' == FileToolkit::getFileTypeByExtension($uploadFile['ext'])) {
             $uploadFile['convertHash'] = "{$fileInfo['convertHash']}";
             $uploadFile['convertStatus'] = 'none';
             $uploadFile['convertParams'] = $fileInfo['convertParams'];
         } else {
             $uploadFile['convertHash'] = "{$fileInfo['convertHash']}";
             $uploadFile['convertStatus'] = 'waiting';
             $uploadFile['convertParams'] = $fileInfo['convertParams'];
         }
     }
     $uploadFile['type'] = FileToolkit::getFileTypeByExtension($uploadFile['ext']);
     $uploadFile['canDownload'] = empty($uploadFile['canDownload']) ? 0 : 1;
     $uploadFile['storage'] = 'cloud';
     $uploadFile['createdUserId'] = $this->getCurrentUser()->id;
     $uploadFile['updatedUserId'] = $uploadFile['createdUserId'];
     $uploadFile['updatedTime'] = $uploadFile['createdTime'] = time();
     return $uploadFile;
 }
 public function addFile($targetType, $targetId, array $fileInfo = array(), UploadedFile $originalFile = null)
 {
     $errors = FileToolkit::validateFileExtension($originalFile);
     if ($errors) {
         @unlink($originalFile->getRealPath());
         throw $this->createServiceException("该文件格式,不允许上传。");
     }
     $uploadFile = array();
     $time = time();
     $uploadFile['storage'] = 'local';
     $uploadFile['targetId'] = $targetId;
     $uploadFile['targetType'] = $targetType;
     $uploadFile['filename'] = $originalFile->getClientOriginalName();
     //$uploadFile['filename'] = $time.$uploadFile['filename'];
     $uploadFile['ext'] = FileToolkit::getFileExtension($originalFile);
     $uploadFile['size'] = $originalFile->getSize();
     $filename = FileToolkit::generateFilename($uploadFile['ext']);
     $uploadFile['hashId'] = "{$uploadFile['targetType']}/{$uploadFile['targetId']}/{$filename}";
     $uploadFile['convertHash'] = "ch-{$uploadFile['hashId']}";
     $uploadFile['convertStatus'] = 'none';
     $uploadFile['type'] = FileToolkit::getFileTypeByExtension($uploadFile['ext']);
     $uploadFile['isPublic'] = empty($fileInfo['isPublic']) ? 0 : 1;
     $uploadFile['canDownload'] = empty($uploadFile['canDownload']) ? 0 : 1;
     $uploadFile['updatedUserId'] = $uploadFile['createdUserId'] = $this->getCurrentUser()->id;
     $uploadFile['updatedTime'] = $uploadFile['createdTime'] = time();
     //$uploadFile['filePath'] = $this->getFilePath();
     //throw new \RuntimeException(print_r('ssd'));
     //throw $this->createServiceException(print_r('ssd'));
     //$key = $uploadFile['filename'];
     //qiniu();
     //转存上传临时文件到资源文件夹(由于业务服务器硬盘较小,故不作备份,直接上传到七牛云。如需开启则删除下面注释符) 以下代码未包含删备份
     $targetPath = $this->getFilePath($targetType, $targetId, $uploadFile['isPublic']);
     $originalFile->move($targetPath, $filename);
     //todo 上传到七牛处理代码(存储、转码、拼接、水印)20151224
     //$config = $this->getQiniuService()->initQiniu($targetPath,$filename);
     return $uploadFile;
 }