繁体   English   中英

如何重命名必须上传并保存到文件夹的文件

[英]How can I rename a file I have to upload and save to folder

我想上传一张图片并将其保存到storage/app/logos

我想用用户在输入中插入的信息重命名它。 我已经做了一个dd(); 它运作良好。

我已经尝试更改另存为。 但是当谈到将文件保存在文件夹中时,它会保存一个不可读的文件并命名为$name

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<form action="emp" method="POST" enctype="multipart/form-data">
    {{ csrf_field() }}
    Book title:
    <br />
    <input type="text" name="title" />
    <br /><br />
    Logo:
    <br />
    <input type="file" name="logo" />
    <br /><br />
    <input type="submit" value=" Save " />
</form>
</body>
</html>

这是我的 controller:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class empController extends Controller
{
    public function store(Request $request)
    {
        $name = $request->input('title');
        $request->logo->storeAs('logos', '$name');
    }
}

您正在引用变量名称,因此它成为一个字符串

$request->file('logo')->storeAs('logos', $name);

文档

指定文件名
如果您不希望将文件名自动分配给您的存储文件,您可以使用storeAs方法,该方法接收路径、文件名和(可选)磁盘作为其 arguments:

$path = $request->file('avatar')->storeAs(
    'avatars', $request->user()->id
);

希望这可以帮助

如果你想自己做:

// initializing file name with null
$data['logo'] = null;

if ($request->hasFile("logo")) {
        $fileName = md5(time() . rand()) . "." . pathinfo($request->photo- 
                    >getClientOriginalName(), PATHINFO_EXTENSION);
        $destinationPath = storage_path('/app/logos/');
        $request->photo->move($destinationPath,$fileName);
        $data['logo'] = $fileName; // storing filename
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM