我正在尝试设置测试以上传文件。 在控制器中,我需要检查一切是否正常(表单验证)。
问题是响应给我一个错误$ request-> dataFile-> getClientOriginalExtension(),(vendor / symfony / http-foundation / File / UploadedFile.php)
看起来像dataFile或request或...。我不知道如何设置它。
/**
@test
@group formPostFile
*/
public function formPostFile()
{
$test_file_path = base_path().'/httpdocs/test/Excel.xlsx';
$this->assertTrue(file_exists($test_file_path), $test_file_path.' Test file does not exist');
$_FILE = [
'filename' => [
'name' => $test_file_path,
'type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'size' => 10336,
'tmp_name' => $test_file_path,
'error' => 0
]
];
$data = [
'id' => '2',
'dataFile' => $_FILE
];
$response = $this->post('/excel', $data);
dd($response->getContent());
}
答案 0 :(得分:1)
利用Symfony/Illuminate
类UploadedFile
$file = new UploadedFile(
$test_file_path,
$test_file_path,
filesize($test_file_path),
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
null,
true
);
LastParameter是testMode,应该为true,我相信这会在您的代码中解决,并以与您已经拥有的数组类似的方式使用它。
$data = [
'id' => '2',
'dataFile' => $file
];