2017-09-04 67 views
1

你好,我在拉拉维新手,所以我真的需要一些帮助。我想创建一个代码,其中只有图片可以上传其他文件不能,我试图使用代码输入文件,但是当我尝试上传zip文件时,它仍然上传,所以我真的需要帮助php - 如何使文件上传唯一图像 - Laravel

This是我的表码

<div class="col-sm-5"> 
{!! Form::label('photo', 'Photo:') !!} 
<input type='file' name='photo' class='form-control' accept = 'image/jpeg , image/jpg, image/gif, image/png'> 

这是我的控制器

public function store(CreateBannerRequest $request) 
{ 

    $input = $request->all(); 
    //get original file name 
    if($request->photo == NULL) 
    { 
     Flash::error('Image must be filled'); 
     return back(); 
    } 
    $filename = Input::file('photo')->getClientOriginalName(); 
    $input['photo'] = $filename; 
    $banner = $this->BannerRepository->create($input); 
    //upload file 
    Input::file('photo')->move($this->path, $filename); 

    Flash::success('Banner saved successfully.'); 

    if (empty($banner)) { 
     Flash::error('No image available'); 

     return redirect(route('banner.index')); 
    } 

    return redirect(route('banner.index')); 
} 

This is the view of my code

+0

嗨,你在那里,你需要在后端验证文件类型,只需要在前端名称的文件上传字段。 –

+0

@SagarGautam你能告诉我的代码请:D –

+0

我会添加回答 –

回答

2

你在前面有代码这样结束:

查看

<form action="{{URL::to('upload/photo')}}" class="form-horizontal" method="POST" role="form" enctype="multipart/form-data"> 
    <input type="file" name="photo"> 
    <button class="btn btn-default pull-right" type="submit">Create</button> 
</form> 

路线

Route::post('upload/photo','[email protected]'); 

的TestController

public function uploadPhoto(Request $request) 
{ 
    $this->validate($request, [ 
     'photo' => 'mimes:jpeg,png,bmp,tiff |max:4096', 
    ], 
     $messages = [ 
      'required' => 'The :attribute field is required.', 
      'mimes' => 'Only jpeg, png, bmp,tiff are allowed.' 
     ] 
    ); 
// Now save your file to the storage and file details at database. 
} 

我希望,你已了解。

+0

感谢帮助:D但是这是否意味着我需要建立新的路线和公共职能? –

+0

@SahatRiyanto我已经添加完整的方式,以便您可以轻松理解。您可以根据您的现有功能的要求添加这些代码 –

+0

非常感谢您的努力:D上帝保佑您 –

0

你可以验证做到throuhg mimes:jpeg和其他类型,如文档页面上PNG等查找laravel验证

+0

感谢您的回应,但我已经尝试过,仍然没有工作,也许你可以告诉我的代码,因为我真的新手在Laravel:D 而这是参考https://stackoverflow.com/questions/27646204/is-laravel-file-uploading-secure-if-considered-only-image –

+0

所以在'CreateBannerRequest'下的规则'public function rules() { return [ 'photo'=>'required | mimes:jpeg,jpg,png', ]; } '继承人你需要在5.3或更高版本,我相信以前的版本有一些问题。 –

+0

谢谢,但它仍然没有工作https://imgur.com/a/t9OKg我已经试过你的代码,但是当我尝试上传zip文件它仍然上传:D –