如何使用laravel 5.4在数据库中上传和保存多个图像?

时间:2018-05-12 14:10:23

标签: php laravel file-upload

我试图用laravel 5.4上传多个图片,实际上上传图片的过程已经完成,问题是如何将它们存储在数据库中? 例如,当要创建一个包含多个上传图像的幻灯片时,如何对它们进行分组,以便幻灯片放映知道这些图像在一个组中?

你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

确保您转到配置/文件系统并转到' FILESYSTEM_DRIVER'公共'

存储图像路径的模型:

class UserDocuments extends Model
{
    //
    protected $table = 'user_documents';

    public function store($user_id, $document_link, $file_name)
    {
        $this->user_id = $user_id;
        $this->document_link = $document_link;
        $this->file_name = $file_name;
        $this->save();
    }
}

控制器中用于存储文件的代码('文档'是文件输入字段名称)

if ($request->hasFile('document')) {
            $link = $request->file('document')->store('documents');
        }
    $userDocuments->store(request('user_id'), url($link), $link);

要显示图像是否在一个组中,您必须创建一个名为' group_id'的数据库列。并相应地对它们进行排序。

答案 1 :(得分:0)

  

我们必须通过分隔逗号将图像存储到一个记录/行中。

 class DocumentController extends Controller
 {
    public function store(Request $request)
    {
         $pid = $request->input('pid');
         $input = $request->file('files');

         $picture = array();
         if($request->hasFile('files')) : 
            foreach ($images as $item):
              $extension = $item->getClientOriginalName(); //image extension
              $name = time() . '.' .$extension;           //image name
              $item->move('uploads/documents/', $name);  //move to destination
              $arr[] = $name;      //store image into array                   
            endforeach;
            $picture = implode(",", $arr); //Image separated by comma
         else:
            $picture = '';
         endif;

        DB::table('document')->insert(array('pid' => $pid,'image' => $picture));
        Session::flash('message', 'Multiple Images are uploaded successfully');
        return redirect('/multiple-image');
     }
 }