繁体   English   中英

laravel 5.2中的文件上传错误

[英]file upload error in laravel 5.2

这是我的upload.blade.php代码

{!!Form::open(array('url'=>'parser','method'=>'POST','enctype'=>'multipart/form-data','onsubmit'=>'return validate(this)', 'files'=>true)) !!}
                <div class="panel panel-default file-upload">
                  <div class="panel-heading">
                    <label for="exampleInputFile">Upload Manually :</label>
                     </div>
                  <div class="panel-body">
                    {!! Form::file('Filename') !!}
             <progress id="progressBar" value="0" max="100" width="100%">
          </progress>
    <h3 id="status"></h3>
    <p id="loaded_n_total"></p>
    {!! Form::submit('Submit', array('class'=>'btn btn-info','value'=>'Upload File')) !!}
          {!! Form::close() !!}

然后我有一个控制器类来移动上传文件,上传功能是

public function uploadFile(){

     $a=session('upload');
      $path="/logparser/html/upload/".$a;
            $fileExistsFlag = 0;
     $file = array('Filename' => Request::file('Filename'));
             if(!(is_dir($path))){
              mkdir($path, 0777);
              chmod($path,0777); 
              }

             Request::file('Filename')->move($path);

             Session::flash('success', 'Upload successfully');
             return view('dash');
  }

它给出了一个错误:在null上调用成员函数move()并且我查看了文件的内容但是数组是空的。

我使用此功能上传图像,它工作正常 -

 public function upload_image(){

    $input = Input::instance();
    $destinationPath = public_path("uploads/user");

   if($input->file('user_image')){

    try{
        if ($input->file('user_image')->isValid())
        {
             $extension = $input->file('user_image')->getClientOriginalExtension();
             $fileName = rand(11111, 99999) . '.' . $extension;
             if($input->file('user_image')->move($destinationPath, $fileName)){
            // Updating user image in db

            }else{
                $this->data['message'] = Lang::get('messages.image_upload_fail');
                 $this->utilObj->renderJson('error', $this->data);
            }
        }else{
            $this->data['message'] = Lang::get('messages.image_upload_fail');
            $this->utilObj->renderJson('error', $this->data);
        }
    }
    catch (\Exception $e) {

        Log::error("AppUsers::upload_image()  " . $e->getMessage());
        $this->data['message'] = Lang::get('messages.image_upload_fail');
        $this->utilObj->renderJson('error', $this->data);
        return false;
    }
   }else{

        $this->data['message'] =  Lang::get('messages.image_required');
        $this->utilObj->renderJson('error', $this->data);
        return false;
   }

}

通过更改php.ini文件解决了这个问题。 我更改了“upload_max_filesize = -1”和“post_max_size = -1”。

这应该工作

$file=Input::file('Filename')->getClientOriginalName();
Input::file('Filename')->move($destination,$file);

你可以写这样的代码

public function uploadFile(Illuminate\Http\Request $request){
      $a=session('upload');
      $path="/logparser/html/upload/".$a;
      $fileExistsFlag = 0;

      if(!(is_dir($path))){
        mkdir($path, 0777);
        chmod($path,0777); 
      }

      $request->file('Filename')->move($path);
      Session::flash('success', 'Upload successfully');
     return view('dash');
}

有关更多信息,您可以阅读laravel 5.2的文档https://laravel.com/docs/5.2/requests#files

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM