如何上传文件并将其以原始名称保存在存储文件夹中

时间:2019-01-02 07:15:43

标签: php laravel laravel-5.5

我想用原始名称保存上传的文件。我必须在此代码中添加什么?

下面是我的代码

public function store(Request $request)
{
    if($request->hasFile('image'))
    {
        $file = $request->file('image');
        $originalname = $file->getClientOriginalName();
        $filename =$originalname;
        $file->move('public/', $filename);
    }

3 个答案:

答案 0 :(得分:0)

您可以使用storeAs方法,该方法接收路径,文件名和(可选)磁盘作为其参数:

public function store(Request $request)
{
    if($request->hasFile('image'))
    {
        $file = $request->file('image');
        $originalname = $file->getClientOriginalName();
        $path = $file->storeAs('public/', $originalname);
    }
}

答案 1 :(得分:0)

尝试一下:

if($request->hasFile('image'))
{
    $file = $request->file('image');
    $originalname = $file->getClientOriginalName();
    $img = Image::make($file->getRealPath());
    $img->stream();
    Storage::disk('local')->put('images/'.$originalname, $img, 'public');
}

答案 2 :(得分:0)

使用原始文件名上传文件。

if ($request->hasFile('image')) {
    $file_path = $request->file('image')->storeAs('dir_name', request()->file('image')->getClientOriginalName(), 'optional_disk_name');
}

// pass the disk name as the third argument to the storeAs method: ex. local,s3,etc