在laravel中获取没有扩展名的文件名?

2021/01/06 07:21 · php ·  · 0评论

我曾经Input::file('upfile')->getClientOriginalName()检索过上传文件的名称,但是给了扩展qwe.jpg名,如qwelaravel。

Laravel使用SymfonyUploadedFile组件,该组件将通过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->file('upfile')->getClientOriginalName();

获取不带扩展名的文件名

basename($request->file('upfile')->getClientOriginalName(), '.'.$request->file('upfile')->getClientOriginalExtension());

这很干净:

  $fileName = pathinfo($fullFileName)['filename'];

相当于:

  $fileName = pathinfo($fullFileName, PATHINFO_FILENAME);

https://php.net/manual/zh/function.pathinfo.php

在这里您需要调用php PATHINFO_FILENAME

$file = $request->file('fileupload')->getClientOriginalName();
$fileName = pathinfo($file,PATHINFO_FILENAME);
dd($fileName);

使用getClientOriginalName()获取文件名;然后使用爆炸函数获取名称和图像格式,如下所示:

$image=Input::file('image');
$fullName=$image->getClientOriginalName();
$name=explode('.',$fullName)[0];

我使用此代码并在Laravel 5.2中工作。*

$file=$request->file('imagefile');
$imgrealpath= $file->getRealPath(); 
$nameonly=preg_replace('/\..+$/', '', $file->getClientOriginalName());
$fullname=$nameonly.'.'.$file->getClientOriginalExtension();

在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'
preg_replace('/\..+$/', '', 'qwe.jpg')

要么

explode('.', 'qwe.jpg')[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);
    }

在Laravel 5.4或5.4流明,这可能是一个有用的资源在这里

你可以用这个

Input::file('upfile')->getClientOriginalExtension()
本文地址:http://php.askforanswer.com/zailaravelzhonghuoqumeiyoukuozhanmingdewenjianming.html
文章标签: ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!