我正在尝试在Lumen 5.6中测试文件上传,但是def ll_series (p):
ll_list=[4]
print 4
for i in range(1, p+1):
ll_list.append((ll_list[i-1]**2 - 2) % (2**p-1))
print(ll_list[i])
return ll_list
伪造未通过控制器中的检查。例如:
测试:
Illuminate\Http\UploadedFile
控制器:
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Storage;
public function testUploadImage()
{
Storage::fake('s3');
$this->actingAs($this->user)
->post('/v1/files', [
'file1' => UploadedFile::fake()->image('avatar.jpg'),
])
->seeJsonStructure([
'file1' => [
'filename',
'mime',
],
])
->assertResponseStatus(201);
...
}
验证已通过,但是public function upload(Request $request)
{
$this->validate($request, [
'file1' => 'required|file|mimetypes:image/jpeg',
]);
// Temp check
if (!$request->hasFile('file1')) {
echo 'no file';
}
$filename = $request->file('file1')->hashName();
$mime = $request->file('file1')->getMimeType();
Storage::disk('s3')
->putFile(
$this->getFolderByMime($mime),
$request->file('file1'),
'public'
);
return $this->respond([
'file1' => [
'filename' => $filename,
'mime' => $mime,
]
]);
}
始终返回$request->hasFile('file1')
。
P.S。我使用Amazon S3存储文件。
答案 0 :(得分:0)
在流明中,文件参数被硬编码为空。 See Github issue。
之所以会这样,是因为将files参数传递给了调用 调用中的方法被硬编码为一个空数组。
您需要按如下方式构造调用:
$this->actingAs($this->user)
->post('/v1/files', [], [], [
'file1' => UploadedFile::fake()->image('avatar.jpg'),
])
->seeJsonStructure([
'file1' => [
'filename',
'mime',
],
])
->assertResponseStatus(201);