我知道有很多类似的问题,但我找不到解决问题的办法。
我正在尝试对PDF文件上传进行测试,但我一直得到“无法在路径document.pdf.处找到文件”错误。根据Laravel医生的说法,一切似乎都很好。我遗漏了什么?
控制器工作正常,就像它应该做的一样--它使用PDFDOM库创建目录、存储文件并返回流。
我的文件系统
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
'url' => storage_path('app')
],
'pdf' => [
'driver' => 'local',
'root' => storage_path('pdf_reports'),
'url' => storage_path('pdf_reports')
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
],我的控制器
public function export_report(Request $request){
$path = 'internal/2020/APR/20/report.pdf';
$pdf = PDF::loadView('admin.report');
$content = $pdf->download()->getOriginalContent();
Storage::disk('pdf')->put($path , $content);
return $pdf->stream(\Carbon\Carbon::now()->format('d_M_Y').'report.pdf');
}My TestCase
public function pdf_uploaded()
{
Storage::fake('pdf');
$file = UploadedFile::fake()->create('document.pdf', -1024);
$response = $this->json('POST', '/export/report', [
'file' => $file,
]);
// Assert the file was stored...
Storage::disk('pdf')->assertExists($file->hashName());
}发布于 2020-04-20 09:49:46
错误来自这里,$file = UploadedFile::fake()->create('document.pdf', -1024);
您需要使用例如public_path('document.pdf')指定文件路径,前提是document.pdf文件存在于公用文件夹中。
https://stackoverflow.com/questions/61319422
复制相似问题