文件已上传为blob

时间:2017-07-17 12:33:37

标签: php symfony file-upload doctrine symfony-3.2

我有这个应该上传文件的api。该代码旨在在$request->files中查找上传的文件,但该变量为空。相反,我在$content中找到了它的字符形式( )。这种行为是错误还是我错过了什么? 我检查了composer.json但是没有包含或配置上传(Vich或DoctrineExtensions)包。我可以设置其中一个,但我不知道当前的行为本质上是错误的还是以前的开发人员比我更了解这个?

为了记录,我有File类的yaml文件,看起来类似于DoctrineExtensions - Uploadable

中的文件
MyApp\FileBundle\Entity\File:
    type: entity
    table: file_records
    repositoryClass: MyApp\FileBundle\Repository\FileRepository

    id:
        id:
          type: integer
          generator:
              strategy: AUTO

    fields:

        path:
          name: path
          type: string

        name:
          name: string
          type: string

        mimeType:
          name: mimeType
          type: string
          nullable: true

        size:
          name: size
          type: decimal
          nullable: true

        initialName:
          name: initial_name
          type: string

Ps:文件应该保存为文件,而不是数据库中的blob。

1 个答案:

答案 0 :(得分:0)

看起来客户端在典型HTTP请求的主体中发送文件,而不是使用多部分请求。 Symfony的$request->files(一般来说,使用PHP' s $_FILES的所有内容)仅适用于多部分请求。

您既可以修复您的客户端以发送多部分请求(并从PHP提供的安全保护中受益),也可以通过以下方式自行处理原始内容:

// Be careful to check that the real content is not PHP or something harmful this before 
file_put_contents('/path/to/myimage.png', $request->getContent());