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

时间:2015-11-18 09:29:42

标签: laravel laravel-4 laravel-5 laravel-5.1

我使用Input::file('upfile')->getClientOriginalName()检索已上传文件的名称,但提供的名称扩展名为qwe.jpg。如何在laravel中获取没有qwe等扩展名的名称。

13 个答案:

答案 0 :(得分:50)

Laravel使用将由FROM mydebian方法返回的Symfony UploadedFile组件。

它没有任何方法来检索文件名,因此你可以使用php native function Input::file()

pathinfo()

答案 1 :(得分:18)

你可以试试这个

$file = Input::file('upfile')->getClientOriginalName();

$filename = pathinfo($file, PATHINFO_FILENAME);
$extension = pathinfo($file, PATHINFO_EXTENSION);

echo $filename . ' ' . $extension; // 'qwe jpg'

答案 2 :(得分:11)

在Laravel 5.2中

使用请求及其已存在于别名数组

中的应用文件中

检索原始文件名

$request->file('upfile')->getClientOriginalName();

获取不带扩展名的文件名

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

答案 3 :(得分:3)

这个很干净:

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

答案 4 :(得分:3)

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

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

答案 5 :(得分:3)

在这里您需要调用php PATHINFO_FILENAME

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

答案 6 :(得分:2)

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

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

答案 7 :(得分:2)

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'

答案 8 :(得分:1)

self.tableView.backgroundColor = [UIColor redColor];
self.tableView.backgroundColor = [UIColor colorWithRed:200.0/255.0 green:200.0/255.0 blue:200.0/255.0 alpha:1.0];

preg_replace('/\..+$/', '', 'qwe.jpg')

答案 9 :(得分:1)

试试这个:

    $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);

答案 10 :(得分:1)

您也可以使用此代码。

    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);
    }

答案 11 :(得分:0)

您可以使用此

Input::file('upfile')->getClientOriginalExtension()

答案 12 :(得分:0)

在Laravel 5.4或Lumen 5.4上,这可能是有用的资源here