Laravel:获取存储的文件名

时间:2017-04-15 21:27:02

标签: laravel

我在控制器上使用以下代码存储上传的文件:

$stored_file = $request->file('image')->store(Config::get('filesystems.uploads.gallery_dir'));
Log::info($stored_file);

$stored_file变量包含文件保存后的完整路径,Laravel中是否有一个函数只返回生成的名称? (没有路径)

目前$stored_file返回uploads/gallery/wg7Aa4frj8PQkH89oIseMtlpFtruiJNsHTOoretn.jpeg
我想返回wg7Aa4frj8PQkH89oIseMtlpFtruiJNsHTOoretn.jpeg

4 个答案:

答案 0 :(得分:1)

您可以使用str_replace删除不必要的内容:

<?php

  echo str_replace("uploads/gallery/", "", $stored_file); 

?>

答案 1 :(得分:1)

使用:{alphabets} - {unwanted chars}

答案 2 :(得分:0)

您可以通过以下方式使用hashName()进行操作:

public class uploadinfo {
    private String imageName;
    private String imageURL;
    private String imageURL2;
    public uploadinfo(){}

    uploadinfo(String name, String url) {
        this.imageName = name;
        this.imageURL = url;
        this.imageURL2 = url;
    }

    public String getImageName() {
        return imageName;
    }
    public String getImageURL() {
        return imageURL;
        return imageURL2;
    }}

答案 3 :(得分:0)

考虑使用Laravel 7.x,当您使用以下方法从请求中获取上传的文件时:

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

您将获得一个UploadedFile文件实例,并在其上调用“ store”方法时。它在内部使用md5哈希和一个名为“ hashName”的函数来生成唯一名称。

因此,如果您在UploadedFile实例上调用“ hashName”方法,您将获得与laravel在“ store”方法调用期间创建的相同的唯一名称。

$filename = $request->file('photo')->hashName();