【问题标题】:Issue with file upload (UploadedFile) when testing测试时文件上传(UploadedFile)的问题
【发布时间】:2017-11-25 18:59:57
【问题描述】:

背景: 我创建了一个测试类,它在 laravel 5.1 中运行良好;但在 laravel 5.2 中没有。这是因为文件的“test”参数丢失了。

我使用下面的代码来创建文件请求:

$this->dataFile = new \Symfony\Component\HttpFoundation\File\UploadedFile(
    base_path('tests/files/datafiles/A.csv'), 'A.csv', 'text/csv', 13071, null, true
);

然后我使用 $this->call() 发送它

$this->call('POST', '/uploadFile?token=' . $this->token, $params, [], ['file' => [$this->dataFile]], []);

我遇到的问题是,在接收端,“测试”参数来自我们是错误的:

[0] => Illuminate\Http\UploadedFile Object
        (
            [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] =>
            [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => A.csv
            [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => text/csv
            [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 13071
            [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
            [pathName:SplFileInfo:private] => D:\tests/files/datafiles/A.csv
            [fileName:SplFileInfo:private] => A.csv
        )

【问题讨论】:

    标签: php laravel laravel-5.2


    【解决方案1】:

    你应该使用:

    \Illuminate\Http\UploadedFile

    创建上传的文件而不是:

    \Symfony\Component\HttpFoundation\File\UploadedFile

    有关详细信息,请参阅此答案: https://stackoverflow.com/a/37306881/1835484

    【讨论】:

      猜你喜欢
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多