[英]get file name without extension in laravel?
我已經使用Input::file('upfile')->getClientOriginalName()
來檢索上傳文件的名稱,但給出的名稱帶有像qwe.jpg
這樣的擴展名。 qwe
在 laravel 中獲得像qwe.jpg
這樣沒有擴展名的名稱。
Laravel 使用 Symfony UploadedFile
組件,該組件將由Input::file()
方法返回。
它沒有任何檢索文件名的方法,因此您可以使用php本機函數pathinfo()
:
pathinfo(Input::file('upfile')->getClientOriginalName(), PATHINFO_FILENAME);
你可以試試這個
$file = Input::file('upfile')->getClientOriginalName();
$filename = pathinfo($file, PATHINFO_FILENAME);
$extension = pathinfo($file, PATHINFO_EXTENSION);
echo $filename . ' ' . $extension; // 'qwe jpg'
在 Laravel 5.2 中
使用 Request 並且它已經存在於別名數組中的應用程序文件中
檢索原始文件名
$request->file('upfile')->getClientOriginalName();
獲取沒有擴展名的文件名
basename($request->file('upfile')->getClientOriginalName(), '.'.$request->file('upfile')->getClientOriginalExtension());
這個很干凈:
$fileName = pathinfo($fullFileName)['filename'];
相當於:
$fileName = pathinfo($fullFileName, PATHINFO_FILENAME);
在這里你需要調用 php PATHINFO_FILENAME
$file = $request->file('fileupload')->getClientOriginalName();
$fileName = pathinfo($file,PATHINFO_FILENAME);
dd($fileName);
在 Laravel 7 中引入了 Fluent Strings,它允許以一種非常優雅的方式做到這一點。
basename
方法將返回給定字符串的尾隨名稱部分:
use Illuminate\Support\Str;
$string = Str::of('/foo/bar/baz.jpg')->basename();
// 'baz.jpg'
如果需要,您可以提供一個將從尾隨組件中刪除的“擴展”:
use Illuminate\Support\Str;
$string = Str::of('/foo/bar/baz.jpg')->basename('.jpg');
// 'baz'
我使用此代碼並在我的 Laravel 5.2.* 中工作
$file=$request->file('imagefile');
$imgrealpath= $file->getRealPath();
$nameonly=preg_replace('/\..+$/', '', $file->getClientOriginalName());
$fullname=$nameonly.'.'.$file->getClientOriginalExtension();
使用 getClientOriginalName() 獲取文件名; 然后使用explode函數獲取名稱和圖片格式如下圖:
$image=Input::file('image'); $fullName=$image->getClientOriginalName(); $name=explode('.',$fullName)[0];
嘗試這個:
$fullName = Input::file('image')->getClientOrginalName();
$extension = Input::file('image')->getClientOrginalExtension();
$onlyName = explode('.'.$extension,$fullName);
或這個:
$fullName = Input::file('image')->getClientOrginalName();
$extension = Input::file('image')->getClientOrginalExtension();
$fullNameLenght = strlen($fullName);
$extensionLenght = strlen($extension);
$nameLength = $fullNameLenght - ($extensionLength + 1);
$onlyName = strpos($fullName, 0, $nameLength);
您也可以使用此代碼。
if ($request->hasfile('filename')) {
$image = $request->filename;
$namewithextension = $image->getClientOriginalName(); //Name with extension 'filename.jpg'
$name = explode('.', $namewithextension)[0]; // Filename 'filename'
$extension = $image->getClientOriginalExtension(); //Extension 'jpg'
$uploadname = time() . '.' . $extension;
$image->move(public_path() . '/uploads/', $uploadname);
}
preg_replace('/\..+$/', '', 'qwe.jpg')
或者
explode('.', 'qwe.jpg')[0]
我已經使用Input::file('upfile')->getClientOriginalName()
來檢索上傳的文件名,但給的名稱與擴展像qwe.jpg
。怎么做我不喜歡的擴展名獲得qwe
在laravel。
你可以用這個
Input::file('upfile')->getClientOriginalExtension()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.