gpt4 book ai didi

php - 使用 laravel php 循环将变量添加到数据库

转载 作者:行者123 更新时间:2023-11-29 17:31:29 25 4
gpt4 key购买 nike

由于某种原因,我的脚本返回 noimage.jpg 并且没有存储图像。不太清楚为什么?它构建了正确的文件名,但由于某种原因似乎与这两个术语不匹配?例如它构造了“image1”,但是当填写“image1”字段时,看不到它们匹配?

用户上传照片:

   <div class="section4 ">
<div class="row">
<div class="col-lg-3">
<div class="form-group">
{{Form::file('image1.jpg')}}
</div>
<div class="form-group">
{{Form::file('image2')}}
</div>
<div class="form-group">
{{Form::file('image3')}}
</div>
<div class="form-group">
{{Form::file('image4')}}
</div>
</div>

</div>
</div>

Controller :

for($i=1; $i<=16; $i++){
$filenamestr = (string)('image'.$i);
if($request->hasFile($filenamestr)){
// Get filename with the extension
$filenameWithExt = $request->file('image'.$i)->getClientOriginalName();
// Get just filename
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
// Get just ext
$extension = $request->file('image'.$i)->getClientOriginalExtension();
// Filename to store
$fileNameToStore= $filename.'_'.time().'.'.$extension;
// Upload Image
$path = $request->file('image'.$i)->storeAs('public/cover_images', $fileNameToStore);
} else {
$fileNameToStore = 'noimage.jpg';
}
}

最佳答案

$fileNameToStore的最终值被设置为循环的第 16 次迭代,即 noimage.jpg 。然而,看起来您的图像如果存在的话仍然应该被存储。

您可以通过创建要存储的文件名数组来解决第一个问题:

for($i=1; $i<=16; $i++){
$filenamestr = (string)('image'.$i);
if($request->hasFile($filenamestr)){
// Get filename with the extension
$filenameWithExt = $request->file('image'.$i)->getClientOriginalName();
// Get just filename
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
// Get just ext
$extension = $request->file('image'.$i)->getClientOriginalExtension();
// Filename to store
$fileNameToStore[$i]= $filename.'_'.time().'.'.$extension;
// Upload Image
$path = $request->file('image'.$i)->storeAs('public/cover_images', $fileNameToStore[$i]);
} else {
$fileNameToStore[$i] = 'noimage.jpg';
}
}

dd($fileNameToStore);

对于第二期,请记得检查您的表格是否有 <form enctype="multipart/form-data"...放。另请检查服务器是否具有对您的 cover_images 的写入权限文件夹。

还要检查第一个输入的名称,因为它不应该包含 .jpg在最后。

最后,考虑使用$request->file('image'.$i)->isValid()存储之前检查文件是否有效。

终于

考虑使用数组输入而不是编号字段。 IE。调用各个字段{{Form::file('image[]')}}并使用 Laravel 对 dot notation 的支持或foreach($request)->file()

关于php - 使用 laravel php 循环将变量添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50595016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com