我想將上傳的檔案及其原始客戶端名稱存盤在存盤檔案夾中。我需要在我的代碼中添加或更改什么?任何幫助或建議將不勝感激
這是我的控制器
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"
我嘗試使用StoreAsOrputFileAs但方法未定義
uj5u.com熱心網友回復:
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);
}
uj5u.com熱心網友回復:
要獲取原始檔案名,您可以在 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);
uj5u.com熱心網友回復:
我設法弄清楚如何用自定義名稱存盤它,對于那些想知道如何做到這一點的人來說,這里是代碼
$id = $input['id'];
$originalName = $request->file->getClientOriginalName();
$path = "dev/table/$id/".$originalName;
Storage::disk('local')->put($path, file_get_contents($request->file));
uj5u.com熱心網友回復:
您可以使用存盤使用默認名稱使用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));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441445.html
上一篇:修改laravel中的默認登錄
