Laravel - 使用存储上传图像时创建自定义名称

时间:2017-04-05 10:44:20

标签: php laravel laravel-5

我正在尝试使用laravel Storage上传文件,即 $request->file('input_field_name')->store('directory_name');但是它使用随机字符串名称将文件保存在指定目录中。

现在我想用自定义名称保存上传的文件,即当前时间戳与实际文件名连接。是否有任何最快速,最简单的方法来实现此功能。

5 个答案:

答案 0 :(得分:10)

改为使用storeAs()

$request->file('input_field_name')->storeAs('directory_name', time().'.jpg');

答案 1 :(得分:3)

您可以使用以下代码:

使用文件外观

.stop{ position: absolute; top: 45%; left: 32%; //set this according to ur requirement width: 100%; font-size:20px; }

在您的代码中进行以下更改

use Illuminate\Http\File;

详细信息:Laravel FilesystemstoreAs由@Alexey Mezenin提及

希望这段代码有用:)

答案 2 :(得分:2)

您也可以尝试这样

$ImgValue     = $request->service_photo;
$getFileExt   = $ImgValue->getClientOriginalExtension();
$uploadedFile =   time()'.'.$getFileExt;
$uploadDir    = public_path('UPLOAS_PATH');
$ImgValue->move($uploadDir, $uploadedFile);

谢谢,

答案 3 :(得分:2)

尝试以下工作:

 $image =  time() .'_'. $request->file('image')->getClientOriginalName();   
 $path = base_path() . '/public/uploads/';
 $request->file('image')->move($path, $image);

答案 4 :(得分:1)

你也可以试试这个。

$originalName = time().'.'.$file->getClientOriginalName();
$filename = str_slug(pathinfo($originalName, PATHINFO_FILENAME), "-");
$extension = pathinfo($originalName, PATHINFO_EXTENSION);
$path = public_path('/uploads/');

//Call getNewFileName function 
$finalFullName = $this->getNewFileName($filename, $extension, $path);

// Function getNewFileName 

public function getNewFileName($filename, $extension, $path)
    {

        $i = 1;
        $new_filename = $filename . '.' . $extension;
        while (File::exists($path . $new_filename))
            $new_filename = $filename . '_' . $i++ . '.' . $extension;
        return $new_filename;

    }