【问题标题】:Laravel 5 can't store image name in databaseLaravel 5 无法在数据库中存储图像名称
【发布时间】:2015-08-27 11:45:44
【问题描述】:

我正在使用 Laravel 5.1

我可以使用正确的名称将图像移动到我的目标文件夹,但在数据库中它使用临时名称保存,例如 D:\xampp\tmp\phpC7EA.tmp

form.blade.php

<div class="form-group">
    {!! Form::label('image', 'Upload Image', ['class'=>'control-label col-sm-4']) !!}
    <div class="col-sm-8">
        {!! Form::file('image', null) !!}
    </div>
</div>

TeacherController.php

public function store(TeacherRequest $request)
{
    Teacher::create($request->all());
    $image_name = $request->file('image')->getClientOriginalName();
    $request->file('image')->move(base_path().'/public/images', $image_name);
    Session::flash('success_message', 'Teacher has been added successfully!');
    return redirect('teacher');
}

【问题讨论】:

  • 将图像移动到目标文件夹后,您必须重置教师表中图像路径的值,我建议如果上传的图像包含一些机密信息,那么您应该将其移动到存储目录中像这样的安全目的$request-&gt;file('image')-&gt;move(storage_path().'/public/images', $image_name);
  • 感谢您的建议。我知道它需要重置。但是我该怎么做呢?
  • $teacher = Teacher::create($request-&gt;all()); $teacher-&gt;image=newpath; $teacher-&gt;save();

标签: php database laravel-5.1 image-upload


【解决方案1】:

我在用新图像更新记录时遇到同样的问题,图像名称以正确的名称保存,但数据库中的 tmp 名称如'C:\wamp\tmp\phpD10D.tmp' 我在保存之前所做的是

$request['img'] = $imageName; //with new name
$images->update($request->all());

我知道应该是$_FILE['img']['name'] = $imageName

但是如何在 Laravel 5.1 中管理它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2016-09-05
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    相关资源
    最近更新 更多