php - 如何在 laravel 中使用碳设置上传文件的名称而不是随机数
问题描述
当我上传图像时,它设置为随机数,例如 //15215653352.png。但是相反,我的图像必须是精确的,这意味着我有一个文件夹,其中包含有组织的图片集(digital_1.png,digital_2.png,digital_3.png...)
##图像的文件夹是公开的,称为 imagg##
在 productFactory 我使用这个:
'image' => 'digital_'.$this->faker->unique()->numberBetween(1,28).'.png',
要添加图片,我有以下代码:
$imageName = Carbon::now()->timestamp.'.'. $this->image->extension();
$this->image->storeAs('imagg',$imageName,'public');
$product->image = $imageName;
items-component.blade.php:
@foreach ($products as $product)
<!-- grid item #1 -->
<a href="{{route('product.details',$product->slug)}}">
<div id="TEST" class="activities-grid-item bla" style=" background-image: url({{asset('imagg')}}/{{$product->image}}" >
<h1 class="activities-h1">
.
.
.
</a>
$endforeach
文件系统.php:
'root' => storage_path('app'),
因此,因此无法使用这些随机数显示图像,但必须将它们命名为 suc has digital_x.png (而 x 是从 1 到 28 的变量,并且存在于 imagg 文件夹中)。
解决方案
这应该有效。
try {
$dir = 'folder/to_the_images/'; // path to the images
if (is_dir($dir)) {
$images = glob($dir . '{*.jpg, *.JPG, *.jpeg}');
$imageName = 'digital_' . count($images) + 1 . '.' . $this->image->extension();
$this->image->storeAs('imagg', $imageName, 'public');
$product->image = $imageName;
}
} catch (\Exception $exception) {
die('saving images failed ' . $exception->getMessage());
}
推荐阅读
- c - ESP32 - 从广告中提取制造商特定数据
- python - 如何在 tkinter 中停止执行多个函数?
- javascript - 创建频道并发送消息 discord.js
- angular - 如何使用 ssl 运行 Angular
- dot-matrix - 如何计算图像点阵中的点数 - opencv
- excel - VBA - 如何通过随机化告诉 13 个组合保持在 100 以下?
- python - 如何让 Ursina 窗口始终位于顶部?
- mysql - 有什么办法可以修复VBNET中的这个错误?
- javascript - 如何获取对象数组中的元素
- typescript - 在 Express 中导入路由时出现“错误:找不到模块”