src/Biz/File/Service/Impl/LocalFileImplementorImpl.php

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace Biz\File\Service\Impl;

use Biz\BaseService;
use Biz\File\Dao\UploadFileDao;
use Biz\File\Service\FileImplementor;
use AppBundle\Common\FileToolkit;
use Biz\File\UploadFileException;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Biz\User\Service\UserService;

class LocalFileImplementorImpl extends BaseService implements FileImplementor
{
    public function getFile($file)
    {
        $file['fullpath'] = $this->getFileFullPath($file);
        $file['webpath'] = '';

        return $file;
    }

    public function getFullFile($file)
    {
        return $this->getFile($file);
    }

    //@todo 目前没用到,如果用到,逻辑要改动
    public function addFile($targetType, $targetId, array $fileInfo = array(), UploadedFile $originalFile = null)
    {
        $errors = FileToolkit::validateFileExtension($originalFile);

        if ($errors) {
            @unlink($originalFile->getRealPath());
            $this->createNewException(UploadFileException::EXTENSION_NOT_ALLOWED());
        }

        $uploadFile = array();

        $uploadFile['filename'] = $originalFile->getClientOriginalName();

        $uploadFile['ext'] = FileToolkit::getFileExtension($originalFile);
        $uploadFile['fileSize'] = $originalFile->getSize();

        $filename = FileToolkit::generateFilename($uploadFile['ext']);

        $uploadFile['hashId'] = "{$targetType}/{$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();

        $targetPath = $this->getFilePath($targetType, $targetId);

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。