首页 文章

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

提问于
浏览
0

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

UPDATE

为了进一步说明,我想知道,如果我通过ajax(比如一个音频文件)上传一个文件,并且在请求所在的控制器函数里面,那么这个上传的文件去了哪里?

功能的例子:

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

3 回答

  • 0

    那真的取决于它 . 但很可能它会存储在 storage 文件夹中 . 如果您的用户需要访问上传的文件,则必须将文件存储在 storage/app/public 中 . 要能够访问该文件夹,请执行 php artisan storage:link ,这将创建一个可从 public 文件夹访问的符号链接 .

    假设我想上传文件文件变量名 avatar .

    $path = $request->file('avatar')->store('public/avatars');

    要在客户端访问检索文件,只需调用 asset('storage/avatars');

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

  • 0

    您需要发布您使用过的移动代码 . 所以,我们可以进一步了解这个问题 .

  • 0

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

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

    php artisan storage:链接

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

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

    利用帮助程序上传文件

    点击这里https://laravel.com/docs/5.4/filesystem#file-uploads

    Please mark / upvote如果这有用:)

相关问题