[英](php,laravel) how to insert multi image in database from grouped array through foreach loop
查看刀片
<input type="file" name="upload[0][front_image]" id="image" class="custom-file-input" multiple="">
<input type="file" name="upload[0][er_image]" id="image" class="custom-file-input" multiple="">
<input type="file" name="upload[0][wire_image]" id="image" class="custom-file-input" multiple="">
控制器
public function add_edit_pro_img(Request $req, $id = null){
if ($req->isMethod('post')) {
$data = $req->all();
$upload_img = $req->file('upload');
foreach ($upload_img as $files) {
$product_image = new ProjectImages;
$imgs = Image::make($files['front_image']);
$er_imgs = Image::make($files['er_image']);
$wire_imgs = Image::make($files['wire_image']);
$extension = $files['front_image']->getClientOriginalExtension();
$extension1 = $files['er_image']->getClientOriginalExtension();
$extension2 = $files['wire_image']->getClientOriginalExtension();
$imageName = rand(11,999).time().".".$extension;
$imageName1 = rand(11,999).time().".".$extension1;
$imageName2 = rand(11,999).time().".".$extension2;
$pro_image_path = 'hash images/project images/frontend/'.$imageName;
$er_image_path = 'hash images/project images/er diagram/'.$imageName1;
$wire_image_path = 'hash images/project images/wireframe/'.$imageName2;
Image::make($imgs)->resize(rand(750,1100),rand(500,800))->save($pro_image_path);
Image::make($er_imgs)->resize(rand(750,1100),rand(500,800))->save($er_image_path);
Image::make($wire_imgs)->resize(rand(750,1100),rand(500,800))->save($wire_image_path);
$product_image->project_id = $data['select'];
$product_image->front = $imageName;
$product_image->er = $imageName1;
$product_image->wireframe = $imageName2;
$product_image->status = 1;
$product_image->save();
}
數據庫
id. project_id. front. er. wireframe
1. 23 3343.png 4433.png 44355.png
如何從不同的字段插入多個圖像,例如,如果我想在前字段中添加 2 張圖像,在 er 字段中添加 3 張圖像,在線框字段中添加 4 張圖像,但是使用此代碼,我只能從每個字段插入 1 張圖像
試試這個代碼:
查看刀片:
<input type="file" name="front_image[]" id="front_image" class="custom-file-input" multiple>
<input type="file" name="er_image[]" id="er_image" class="custom-file-input" multiple>
<input type="file" name="wire_image[]" id="wire_image" class="custom-file-input" multiple>
控制器:
public function add_edit_pro_img(Request $req, $id = null){
if ($req->isMethod('post')) {
$data = $req->all();
$front_image = $req->file('front_image');
foreach ($front_image as $files) {
$product_image = new ProjectImages;
$imgs = Image::make($files['front_image']);
$extension = $files['front_image']->getClientOriginalExtension();
$imageName = rand(11,999).time().".".$extension;
$pro_image_path = 'hash images/project images/frontend/'.$imageName;
Image::make($imgs)->resize(rand(750,1100),rand(500,800))->save($pro_image_path);
$product_image->project_id = $data['select'];
$product_image->type= "front_image";
$product_image->img = $imageName;
$product_image->status = 1;
$product_image->save();
}
$er_image = $req->file('er_image');
foreach ($er_image as $files) {
...
}
$wire_image = $req->file('wire_image');
foreach ($wire_image as $files) {
...
}
}
數據庫:
id. project_id. type. img.
1. 23 front_image 3343.png
2. 23 er_image 4433.png
3. 23 wire_image 44355.png
獲取數據:
$data = DB::table('images')->where('project_id', '=', "23");
顯示數據是front_image:
foreach ($data as $image){
if ($image->type == 'front_image')
echo '<img src="/images/project images/frontend/'.$image->img.'" width = "120" height= "160" >';
}
對er_image
和wire_image
做同樣的wire_image
, src
基於你存儲圖像的位置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.