【问题标题】:How to store files in custom location如何将文件存储在自定义位置
【发布时间】:2018-02-11 12:32:16
【问题描述】:

我需要在我的 Laravel 电子商务应用中上传一个文件并将其存储在相应用户的文件夹中。我的代码如下所示:

if ($request->hasFile('attach')) {
            try {
                $file = $request->file('attach');
                $filename = $file->getClientOriginalName();

                Storage::disk('local')->put($filename,  File::get($file));
                Storage::move('app/'.$filename, 'app/public/uploads/'.$user_id.'/attach/'.$filename);

我在config/filesystems.php

'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],

但上传文件时出错:

(1/1) FileNotFoundException:在路径中找不到文件:app/Test1.docx

如何在自定义位置(例如用户文件夹)中存储/保存文件?存储上传文件的自定义位置如下所示: 'app/public/uploads/'.$user_id.'/attach/'

【问题讨论】:

  • 只有Storage::disk('local')->put('app/public/uploads/'.$user_id.'/attach/'.$filename, File::get($file)); 可以完成这项工作,您无需再次移动
  • 或者如果你想保持你的代码不变,那么把它改成Storage::disk('local')->put('app/'.$filename, File::get($file));

标签: php laravel storage


【解决方案1】:

根据@sohel0415 的建议,以下是对我有用的更新代码:

if ($request->hasFile('attach')) {
                    try {
                        $file = $request->file('attach');
                        $filename = $file->getClientOriginalName();
                        Storage::disk('local')->put('public/uploads/'.$user_id.'/attach/'.$filename, File::get($file));

【讨论】:

    猜你喜欢
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2011-03-23
    相关资源
    最近更新 更多