为了账号安全,请及时绑定邮箱和手机立即绑定

未定义的变量:插入

未定义的变量:插入

PHP
心有法竹 2023-10-15 17:16:52
我打算将“annonces\ August2020 \ image.jpg”之类的图像链接插入到数据库和存储中的图像中,但它给了我错误未定义的变量:插入。文件控制器.phppublic function save(Request $request)    {       request()->validate(['file'  => 'required|mimes:doc,docx,pdf,txt,jpeg,jpg|max:2048',]);       if ($files = $request->file('fileUpload')) {           $destinationPath = 'public/file/'; // upload path           $profilefile = date('YmdHis') . "." . $files->getClientOriginalExtension();           $files->move($destinationPath, $profilefile);           $insert['file'] = "$profilefile";        }        $check = Document::insertGetId($insert);        return Redirect::to("file")        ->withSuccess('Great! file has been successfully uploaded.');    }文件.balde.php<form action="/save" method="post" enctype="multipart/form-data">                @csrf                <div class="form-group">                    <input type="file" class="form-control-file" name="file" id="file" aria-describedby="fileHelp">                    <small id="fileHelp" class="form-text text-muted">Please upload a valid image file. Size of image should not be more than 2MB.</small>                </div>                <button type="submit" class="btn btn-primary">Submit</button>            </form>网页.phpRoute::get('file', 'fileController@index');Route::post('save', 'fileController@save');
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

首先,如果你想存储图像,那么你应该使用laravel 的存储功能来存储它。让我只向您展示上传图像并将其保存在数据库中的代码。


if($request->hasFile('file')){

        $file = $request->file('file');

        $fileName = time().$file->getClientOriginalName();

        Storage::put('public/file'.$fileName,file_get_contents($file));

        //file is uploaded and now you can store the name of the file in database 

    }

请添加到use Storage控制器文件的顶部。


现在您可以通过以下方式访问它:


<img src="{{asset('storage/file'.$namefromdatabase)}}" >

php artisan storage:link在上传存储目录中的图片之前不要忘记运行此命令


查看完整回答
反对 回复 2023-10-15
?
MMTTMM

TA贡献1869条经验 获得超4个赞

public function save(Request $request)

        {

           $insert=[];

           request()->validate(['file'  => 'required|mimes:doc,docx,pdf,txt,jpeg,jpg|max:2048',]);

    

           if ($files = $request->file('fileUpload')) {

               $destinationPath = 'public/file/'; // upload path

               $profilefile = date('YmdHis') . "." . $files->getClientOriginalExtension();

               $files->move($destinationPath, $profilefile);

               $insert['file'] = "$profilefile";

            }

            $check = Document::insertGetId($insert);

            return Redirect::to("file")

            ->withSuccess('Great! file has been successfully uploaded.');

        }

这段代码中定义了$insert,请尝试一下。


查看完整回答
反对 回复 2023-10-15
?
慕的地10843

TA贡献1785条经验 获得超8个赞

看这一行:

$insert['file'] = "$profilefile";

这表示,在可能关联的数组中,名为 的$insert键的元素从现在开始'file'将具有值。"$profilefile"您的代码崩溃了,因为$insert未初始化。显然 PHP 的解释器没有你聪明,不知道这$insert应该是一个关联数组。你需要有一条类似的线

$insert = [];

这会将 insert 定义为数组。请注意,必须在将值赋给 的元素之前执行此行$insert


查看完整回答
反对 回复 2023-10-15
  • 3 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信