【问题标题】:Save Url of image to database and get image将图片的Url保存到数据库并获取图片
【发布时间】:2020-03-09 02:40:38
【问题描述】:
  • 嗨,我是 Laravel 的新手,我已经完成了将图像上传到路径 img/banner/{{图片在这里上传}}

  • 我的疑惑是把图片路径保存在数据库中
    用户上传

  • 在检索数据时如何在此处提供我的 URL 路径。

  • 我已经创建了一个数据库名称上传

    id user_id group_id 文件扩展名文件大小位置 created_at updated_at

    刀片文件

    <div class="panel panel-primary">
    
      <div class="panel-heading"><h2>Slide Image Upload</h2></div>
    
      <div class="panel-body">
    
    
    
        @if ($message = Session::get('success'))
    
        <div class="alert alert-success alert-block">
    
            <button type="button" class="close" data-dismiss="alert">×</button>
    
                <strong>{{ $message }}</strong>
    
        </div>
    
        <img src="/img/banner/{{ Session::get('image') }}">
    
        @endif
    
    
    
        @if (count($errors) > 0)
    
            <div class="alert alert-danger">
    
                <strong>Whoops!</strong> There were some problems with your input.
    
                <ul>
    
                    @foreach ($errors->all() as $error)
    
                        <li>{{ $error }}</li>
    
                    @endforeach
    
                </ul>
    
            </div>
    
        @endif
    
    
    
        <form action="{{ route('image.upload.post') }}" method="POST" enctype="multipart/form-data">
    
            @csrf
    
            <div class="row">
    
    
    
                <div class="col-md-6">
    
                    <input type="file" name="image" class="form-control">
    
                </div>
    
    
    
                <div class="col-md-6">
    
                    <button type="submit" class="btn btn-success">Upload</button>
    
                </div>
    
    
    
            </div>
    
        </form>
    
    
    
      </div>
    
    </div>
    

    控制器:

       public function imageUploadPost()
    
    {
    
        request()->validate([
    
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    
        ]);
    
    
    
        $imageName = time().'.'.request()->image->getClientOriginalExtension();
    
    
    
        request()->image->move(public_path('img/banner'), $imageName);
    
    
    
        return back()
    
            ->with('success','You have successfully upload image.')
    
            ->with('image',$imageName);
    
    }
    

    路线:

    Route::post('/imageupload', 'Admin\ImageController@imageUploadPost')->name('image.upload.post');
    

任何帮助将不胜感激。

【问题讨论】:

    标签: php laravel-5.8 image-upload imageurl


    【解决方案1】:

    如果没有,我希望您已包含命名空间

    use DB;
    
    $full_path = public_path('img/banner');
    $ext = request()->image->getClientOriginalExtension();
    $size = request()->image->getSize();
    DB::table('uploads')->insert(
        ['group_id' => '1', user_id' => '1', 'filename' => $imageName,'filesize'=>$size ,'extension'=> $ext,'location' => $full_path,'created_at'=> date('Y-m-d H:m:s')]
    );
    

    你可以通过这个获取你的数据库值,$imagename 是你用来上传图片的名字,不确定你的 group_id 所以设置为 1。

    最新编辑

    这是获取 imageName 的方法:

    $imageName = time().'.'.request()->image->getClientOriginalExtension();
    

    仅来自您的代码

    【讨论】:

    • 使用未定义的常量 created_at - 假定为 'created_at'
    • SQLSTATE[HY000]: 一般错误: 1364 字段 'user_id' 没有默认值 (SQL: 插入uploads (group_id, filename, filesize, @ 987654327@, location, created_at) 值 (1, 1573642167.jpg, 38361, jpg, C:\xampp\htdocs\pwc_appli_chennai\public\img/banner, 2019-11-13 10:11:27))
    • 感谢您的代码,当我上传图片时,数据库中的位置类似于 C:\xampp\htdocs\%%%%\public\img/banner 并且图像不会在 img\banner 路径中上传
    猜你喜欢
    • 1970-01-01
    • 2014-11-22
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    相关资源
    最近更新 更多