调用一个成员函数getClientOriginalName()上的空当上传图像文件系统使用Laravel

问题描述 投票:1回答:2

我想在我的管理数据使用Laravel存储文件系统上传的图像。然而,有一个错误,当我试图上传图片。

调用一个成员函数getClientOriginalName()上的空

调节器

public function store(Request $request)
{
    $admin              = $request->all();
    $fileName           = $request->file('foto')->getClientOriginalName();
    $destinationPath    = 'images/';
    $proses             = $request->file('foto')->move($destinationPath, $fileName);

    if($request->hasFile('foto'))
    {
        $obj = array (
            'foto'  => $fileName,
            'nama_admin' => $admin['nama_admin'],
            'email' => $admin['email'],
            'jabatan' => $admin['jabatan'],
            'password' => $admin['password'],
            'confirm_password' => $admin['confirm_password']
        );
        DB::table('admins')->insert($obj);
    }
    return redirect()->route('admin-index');
}

视图

<div class="form-group">
    <label for="" class="col-md-4">Upload Foto</label>
    <div class="col-md-6">
        <input type="file" name="foto">
    </div>                
 </div>

错误error

laravel image-uploading laravel-filesystem
2个回答
0
投票

您可以检查是否受到qazxsw POI获取文件或者不

并确保您的形式有var_dump($request->file('foto')->getClientOriginalName());设置

enctype="multipart/form-data"

0
投票

错误,因为客户端的

<form enctype="multipart/form-data" method="post" action="{{ url('/store')}}">
<div class="form-group">
    <label for="" class="col-md-4">Upload Foto</label>
    <div class="col-md-6">
        <input type="file" name="foto">
    </div>                
</div>
</form>

您需要添加<form enctype="multipart/form-data" method="post" action="{{ url('/store')}}"> <div class="form-group"> <label for="" class="col-md-4">Upload Foto</label> <div class="col-md-6"> <input type="file" name="foto"> </div> </div> </form> 表单内

如果您使用的是enctype="multipart/form-data"

form builder version

然后在您的控制器,您可以检查是否要求有文件

我创建了简单方便的功能来上传文件

打开你的控制器和下面的代码粘贴

{!! Form::open(['url' => ['store'],'autocomplete' => 'off','files' => 'true','enctype'=>'multipart/form-data' ]) !!}

{!! Form::close() !!}

private function uploadFile($fileName = '', $destinationPath = '') { $fileOriginalName = $fileName->getClientOriginalName(); $timeStringFile = md5(time() . mt_rand(1, 10)) . $fileOriginalName; $fileName->move($destinationPath, $timeStringFile); return $timeStringFile; } 方法

store方式

Eloquent

public function store(Request $request) { $destinationPath = public_path().'images/'; $fotoFile=''; if ($request->hasFile('foto')) { $fotoFile= $this->uploadFile($request->foto,$destinationPath ); } Admin::create(array_merge($request->all() , ['foto' => $fotoFile])); return redirect()->route('admin-index')->with('success','Admin Created Successfully'); } 门面版

如果您正在使用DB使用DB use Illuminate\Support\Facades\DB;

in top of your Controller

希望这是明确的

© www.soinside.com 2019 - 2024. All rights reserved.