我在数据库中的三个不同字段中尝试了三个图像...因为我在控制器中跟踪方法。但我面临的问题是,虽然我有三个输入字段,但它只存储了两个具有相同名称的图像在公共文件夹和数据库中,它存储的值如1 (for product_image), 4 ( for vendor_image), 9 (for user_image)
。
我如何正确地将图像存储在公共文件夹以及数据库中..提前谢谢。
这是控制器:
public function store(Request $request)
{
$product = new Product();
$files= [];
if($request->file('product_image')) $files[] = $request->file('product_image');
if($request->file('vendor_image')) $files[] = $request->file('vendor_image');
if($request->file('user_image')) $files[] = $request->file('user_image');
foreach($files as $file)
{
if(!empty($file))
{
$filename = time().'.'.$file->getClientOriginalExtension();
$file->move('images/',$filename);
}
}
$product->product_image = $filename[0];
$product->vendor_image = $filename[1];
$product->user_image = $filename[2];
$product->save();
}
这是View部分:
<div class="form-group">
<label>Product Image</label>
<input type="file" name="product_image" id="product_image" width="200px">
</div>
<div class="form-group">
<label>Feature Image</label>
<input type="file" name="vendor_image" id="vendor_image" width="200px">
</div>
<div class="form-group">
<label>Slurp Image</label>
<input type="file" name="user_image" id="user_image" width="200px">
</div>
答案 0 :(得分:2)
将您的电影名称存储到数组
$filenames = [];
foreach($files as $file)
{
if (!empty($file))
{
$filename = time() . '.' . $file->getClientOriginalExtension();
$file->move('images/', $filename);
$filenames[] = $filename
}
}
$product->product_image = $filenames[0];
$product->vendor_image = $filenames[1];
$product->user_image = $filenames[2];
$product->save();