Php 如何在laravel中上传图像时为图像命名?

Php 如何在laravel中上传图像时为图像命名?,php,laravel,image,concatenation,laravel-5.5,Php,Laravel,Image,Concatenation,Laravel 5.5,我正在使用Laravel5.5并上传图像。 我的代码以错误的方式生成名称 $image_icon = $request->file('image_icon'); $data['image'] = $image_icon->getClientOriginalName().'.'.time(); $destinationPath = public_path('/images'); $image_icon->move($destinationPath, $data['imag

我正在使用Laravel5.5并上传图像。 我的代码以错误的方式生成名称

 $image_icon = $request->file('image_icon');
 $data['image'] = $image_icon->getClientOriginalName().'.'.time();
 $destinationPath = public_path('/images');
 $image_icon->move($destinationPath, $data['image']);
图像的输出名称如下:heart.png.1544074437

名称应为:heart1544074437.png

使用函数尝试此名称

提取文件名

$fileName = pathinfo($image_icon->getClientOriginalName(), PATHINFO_FILENAME);
提取延伸

$extension = pathinfo($image_icon->getClientOriginalName(), PATHINFO_EXTENSION);
创建新文件名

$fullFileName = $fileName."-".time().$image_icon->getClientOriginalExtension();
有关更多信息,请参见此

使用

pathinfo-返回有关文件路径的信息

路径 要分析的路径

选项(如果存在),指定要返回的特定元素;一 PATHINFO\u目录名、PATHINFO\u基本名、PATHINFO\u扩展名或 路径信息\文件名

如果未指定选项,则返回所有可用元素

您可以执行以下操作:

$image = explode(".", $image_icon);
$image_name = $image[0];
$image_extension = array_slice($image , -1, 1);

$data['image'] = $image_name.time().'.'.$image_extension[0];
我希望这将有助于轻松解决您的问题。 谢谢你试试这个

 $imgName = md5(str_random(30).time().'_'.$request->file('image_icon')).'.'.$request->file('image_icon')->getClientOriginalExtension();

上述代码需要进行以下细微改进:

$image_icon = $request->file('image_icon');

$fileName = pathinfo($image_icon->getClientOriginalName(), PATHINFO_FILENAME);

$extension = pathinfo($image_icon->getClientOriginalName(), PATHINFO_EXTENSION);

$data['image'] = $image_icon->getClientOriginalName().time().'.'.$extension;

我尚未测试此代码段,但它应该可以工作。

您也可以使用laravel开箱即用解决方案进行上传:

$request->photo->store('images');

有关更多信息,请查看此处:

以下代码对我来说运行良好

// extract file name ..

        $fileName = pathinfo($fileupload_dt->getClientOriginalName(), PATHINFO_FILENAME);
        
        // extract extenstion

        $extension = pathinfo($fileupload_dt->getClientOriginalName(), PATHINFO_EXTENSION);
        
        // create new file name.

        $imageName = $fileName."-".time().".".$fileupload_dt->getClientOriginalExtension();

        $uploadPath = 'public/ArchiveImg/img';
        $fileupload_dt->move($uploadPath,$imageName);
        $imageUrl = $uploadPath.$imageName;
// extract file name ..

        $fileName = pathinfo($fileupload_dt->getClientOriginalName(), PATHINFO_FILENAME);
        
        // extract extenstion

        $extension = pathinfo($fileupload_dt->getClientOriginalName(), PATHINFO_EXTENSION);
        
        // create new file name.

        $imageName = $fileName."-".time().".".$fileupload_dt->getClientOriginalExtension();

        $uploadPath = 'public/ArchiveImg/img';
        $fileupload_dt->move($uploadPath,$imageName);
        $imageUrl = $uploadPath.$imageName;