在Laravel项目中,上传文件的默认位置在哪里?

时间:2018-12-09 02:58:02

标签: laravel file

如果要使用Ajax将图像或音频文件上传到服务器,则默认情况下不使用move方法将文件数据存储在哪里?它在Storage/framework/cache/data文件夹中吗?

更新

为了进一步详细说明,我想知道,如果我通过ajax上传文件(比如说音频文件),并且在请求进入的控制器功能内部,则是无代码块,只是空白该上传的文件在哪里?

功能示例:

public function processUploadedFile(Request $Request) {
 // blank block, no code to affect file
}

3 个答案:

答案 0 :(得分:0)

您需要发布使用的移动代码。因此,我们可以进一步了解该问题。

答案 1 :(得分:0)

公用磁盘用于将要公开访问的文件。默认情况下,公用磁盘使用本地驱动程序,并将这些文件存储在storage / app / public中。为了使它们可以从Web上访问,您应该创建一个从public / storage到 storage / app / public 的符号链接。此约定会将您的公共可访问文件保留在一个目录中,当使用零停机时间部署系统(例如Envoyer)时,可以在各个部署之间轻松共享这些文件。

要创建符号链接,可以使用storage:link Artisan命令:

php artisan storage:link

当然,一旦存储了文件并创建了符号链接,就可以使用资产助手创建指向这些文件的URL:

回显资产('storage / file.txt');

利用助手上传文件

在此处https://laravel.com/docs/5.4/filesystem#file-uploads

标记/赞一下是否有帮助:)

答案 2 :(得分:0)

这真的取决于。但最有可能将其存储在$part2文件夹中。如果您的用户需要访问上载的文件,则必须将文件存储在storage中。要访问该文件夹,请执行storage/app/public,这将创建一个可从php artisan storage:link文件夹访问的符号链接。

假设我要上传文件文件变量名public

avatar

要访问客户端的检索文件,只需调用$path = $request->file('avatar')->store('public/avatars');

参考: https://laravel.com/docs/5.7/filesystem