[英]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.