如何使用原始名称将文件保存在存储文件夹中?
How to Save File in storage folder with Original name?
我想在存储文件夹中存储一个带有原始客户端名称的上传文件。我需要在我的代码中添加或更改什么?任何帮助或建议将不胜感激
这是我的控制器
public function store(Request $request) {
$path = "dev/table/".$input['id']."";
$originalName = $request->file->getClientOriginalName();
$file = $request->file;
Storage::disk('local')->put($path . '/' . $originalName, $request->file);
}
编辑:我知道如何获取 originalClientName。问题是使用原始名称而不是哈希名称将文件存储在文件夹中。它不会存储在原始文件中,而是创建一个新文件夹,这里是输出 "dev/table/101/Capture1.PNG/xtZ9iFoJMoLrLaPDDPvc4DMJEXkRL3R4qWOionMC.png"
我想要得到的是 "dev/table/101/Capture1.PNG"
我试过使用StoreAs
或putFileAs
但方法未定义
要获取原始文件名,您可以在 ControllerClass 中使用它:
$file = $request->file->getClientOriginalName();
要获得额外的扩展,您可以使用此 Laravel 请求方法:
$ext = $request->file->getClientOriginalExtension();
然后你可以保存:
$fileName = $file.'.'.$ext;
$request->file->storeAs($path, $fileName);
// or
Storage::disk('local')->put($path . '/' . $fileName , $request->file);
public function store(Request $request) {
$originalName = $request->file->getClientOriginalName();
$extension = $request->file->getClientOriginalExtension();
$path = "dev/table/" . $input['id'] . "/" . $originalName . "." . $extension;
$file = $request->file;
Storage::disk('local')->put($path, $file);
}
您可以使用 putFileAs
函数而不是 put
函数以默认名称保存文件,这允许将第三个参数作为文件名
$path = "dev/table/101/";
$originalName = request()->file->getClientOriginalName();
$image = request()->file;
Storage::disk('local')->putFileAs($path, $image, $originalName);
更新
你可以用 put 做这样的事情,
Storage::disk('local')->put($path.$originalName, file_get_contents($image));
我设法弄清楚如何用自定义名称存储它,对于那些想知道如何做到这一点的人来说,这里是代码
$id = $input['id'];
$originalName = $request->file->getClientOriginalName();
$path = "dev/table/$id/".$originalName;
Storage::disk('local')->put($path, file_get_contents($request->file));
我想在存储文件夹中存储一个带有原始客户端名称的上传文件。我需要在我的代码中添加或更改什么?任何帮助或建议将不胜感激
这是我的控制器
public function store(Request $request) {
$path = "dev/table/".$input['id']."";
$originalName = $request->file->getClientOriginalName();
$file = $request->file;
Storage::disk('local')->put($path . '/' . $originalName, $request->file);
}
编辑:我知道如何获取 originalClientName。问题是使用原始名称而不是哈希名称将文件存储在文件夹中。它不会存储在原始文件中,而是创建一个新文件夹,这里是输出 "dev/table/101/Capture1.PNG/xtZ9iFoJMoLrLaPDDPvc4DMJEXkRL3R4qWOionMC.png"
我想要得到的是 "dev/table/101/Capture1.PNG"
我试过使用StoreAs
或putFileAs
但方法未定义
要获取原始文件名,您可以在 ControllerClass 中使用它:
$file = $request->file->getClientOriginalName();
要获得额外的扩展,您可以使用此 Laravel 请求方法:
$ext = $request->file->getClientOriginalExtension();
然后你可以保存:
$fileName = $file.'.'.$ext;
$request->file->storeAs($path, $fileName);
// or
Storage::disk('local')->put($path . '/' . $fileName , $request->file);
public function store(Request $request) {
$originalName = $request->file->getClientOriginalName();
$extension = $request->file->getClientOriginalExtension();
$path = "dev/table/" . $input['id'] . "/" . $originalName . "." . $extension;
$file = $request->file;
Storage::disk('local')->put($path, $file);
}
您可以使用 putFileAs
函数而不是 put
函数以默认名称保存文件,这允许将第三个参数作为文件名
$path = "dev/table/101/";
$originalName = request()->file->getClientOriginalName();
$image = request()->file;
Storage::disk('local')->putFileAs($path, $image, $originalName);
更新
你可以用 put 做这样的事情,
Storage::disk('local')->put($path.$originalName, file_get_contents($image));
我设法弄清楚如何用自定义名称存储它,对于那些想知道如何做到这一点的人来说,这里是代码
$id = $input['id'];
$originalName = $request->file->getClientOriginalName();
$path = "dev/table/$id/".$originalName;
Storage::disk('local')->put($path, file_get_contents($request->file));