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 (empty($fileInfo['convertHash'])) { $uploadFile['convertHash'] = "ch-{$uploadFile['hashId']}"; $uploadFile['convertStatus'] = 'none'; $uploadFile['convertParams'] = ''; } else { $uploadFile['convertHash'] = "{$fileInfo['convertHash']}"; $uploadFile['convertStatus'] = 'waiting'; $uploadFile['convertParams'] = $fileInfo['convertParams']; } $uploadFile['type'] = FileToolkit::getFileTypeByMimeType($fileInfo['mimeType']); $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; }