测试时文件上传 (UploadedFile) 问题
Issue with file upload (UploadedFile) when testing
背景:
我创建了一个测试 class,它在 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]], []);
我遇到的问题是,在接收端,"test" 参数通过我们传来是假的:
[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
)
你应该使用:
\Illuminate\Http\UploadedFile
要创建上传的文件而不是:
\Symfony\Component\HttpFoundation\File\UploadedFile
有关详细信息,请参阅此答案:
背景: 我创建了一个测试 class,它在 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]], []);
我遇到的问题是,在接收端,"test" 参数通过我们传来是假的:
[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
)
你应该使用:
\Illuminate\Http\UploadedFile
要创建上传的文件而不是:
\Symfony\Component\HttpFoundation\File\UploadedFile
有关详细信息,请参阅此答案: