Laravel上传的文件路径返回错误

时间:2017-11-21 10:20:23

标签: php laravel file-upload

我一直在使用这个tutorial跟踪上传方法,我得到了一些我不能再思考的错误了。

以下是示例,我上传文件名" fileNumber1.pdf",laravel系统将使用Storage facade保存文件。

$filePath[] = $fileData->storeAs('uploadedFile', $fileName);

因此原始路径将是" storage / app / uploadedFile / fileNumber1.pdf"。

要查看该文件,教程建议使用

echo asset('storage/file.txt');

所以根据我的理解,回声应该像

echo asset('storage/uploadedFile/fileNumber1.pdf');

由于我使用本地开发,因此返回

http://localhost:8000/storage/uploadedFile/fileNumber1.pdf

然后我转到给定的链接,它返回

Sorry, the page you are looking for could not be found.

那么接收或查看文件的正确方法是怎样的呢?

3 个答案:

答案 0 :(得分:0)

此网址http://localhost:8000/指向pubilc文件夹

因此,将文件存储在uploadedFile文件夹内的public文件夹中,然后使用

http://localhost:8000/uploadedFile/fileNumber1.pdf

否则请使用storage_path('uploadedFile/fileNumber1.pdf');代替asset('storage/uploadedFile/fileNumber1.pdf');

答案 1 :(得分:0)

如果您已经按照教程链接进行操作,那么您应该运行以下命令创建一个符号链接,如果还没有,请在您的应用程序文件夹中运行该artisan命令。

php artisan storage:link

所以现在下面的commad会给你想要的结果。

 {{ asset('storage/uploadedFile/fileNumber1.pdf') }}

{{ storage_path('uploadedFile/fileNumber1.pdf') }} 

您不必指向文件的完整路径,因为asset()将默认将您指向公用文件夹,然后您必须添加文件位置所需的路径。

答案 2 :(得分:0)

对不起,如果你收到了粗鲁的话。

错误是我的。

解决方案很简单。

原文是

$filePath[] = $fileData->storeAs('uploadedFile', $fileName);

解决方案是

$filePath[] = $fileData->storeAs('public/uploadedFile', $fileName);

只需添加#34; public"在上传之前的文件路径之前。

感谢所有人的努力。