laravel-在数据库中以单行存储多个图像

cnh2zyt3  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(371)

如何在我的数据库中存储多个图像?我有这个代码,但我不能传递任何数据它只传递一个数据。
我想在我的图片行中实现这个数据库格式

控制器

public function store(Request $request)
{

   //Handle File Upload
   if($request->hasFile('city')){
    // Get FileName
    $filenameWithExt = implode(' , ',$request->file('city')->getClientOriginalName());
    //Get just filename
    $filename = pathinfo( $filenameWithExt, PATHINFO_FILENAME);
    //Get just extension
    $extension =  implode(' , ',$request->file('city')->getClientOriginalExtension());
    //Filename to Store
    $fileNameToStore = $filename.'_'.time().'.'.$extension;
    //Upload Image
    $path =  implode(' , ',$request->file('city')->storeAs('public/city_image',$fileNameToStore));

}else{
    $fileNameToStore='noimage.jpg';
}

   $citi = new City;
   $citi->city =$fileNameToStore;
   $citi->save();

   return redirect('/lugar')->with('success', 'Data Inserted');
}

看法

<td> {{Form::file('city[]')}} </td>
t1rydlwq

t1rydlwq1#

您需要对它们进行json编码。将db字段设为 long text 当您要将值保存到数据库时,请执行以下操作:

$citi->city = json_encode($fileNameToStore);

当你想读取这个值时,你可以这样做:

json_decode($citi->city);

现在,我建议做一个图像数组并对它们进行编码,然后解码你可以做:

json_decode($obj->city, TRUE);

你会得到你的阵型

yyhrrdl8

yyhrrdl82#

你应该把图像存储在循环中。城市场是一个数组。
我修改了你的函数。如果我做错了就告诉我。

public function store(Request $request)
{
    if($request->hasFile('city'))
    {
       $file = Input::file('city');
       foreach($file as $key => $part) 
       {
          $filename = $part->getClientOriginalName();
          $filenameWithExt = implode(' , ',$filename);
          $filename = pathinfo( $filenameWithExt, PATHINFO_FILENAME);
          $extension =  implode(' , ',$part->getClientOriginalExtension());
          $fileNameToStore[$key] = $filename.'_'.time().'.'.$extension;
          $path =  implode(' , ',$part->storeAs('public/city_image',$fileNameToStore[$key]));
       }
       // converting images names array to comma separate string 
       $fileNameToStore = implode (", ", $fileNameToStore);
    }else{
       $fileNameToStore = null; // if no image found then it should be null
    }

   $citi = new City;
   $citi->city = $fileNameToStore;
   $citi->save();

   return redirect('/lugar')->with('success', 'Data Inserted');
}

相关问题