2016-04-22 4 views
3

Это мой upload.blade.php кодв Laravel 5.2

{!!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'); 
    } 

Это давая ошибку: вызов функции-члена move() на нуле И я посмотрел содержимое файла, но массив был пуст.

+0

ДД ($ запрос :: файл ('Имя файла'); также пустой – Duikboot

+0

yes..it is empty –

ответ

0

решена проблема только путем изменения в файле php.ini. Я изменил «upload_max_filesize = -1» и «post_max_size = -1».

2

Я использую эту функцию для загрузки изображения, и это работает отлично -

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; 
    } 

} 
+0

Вход не работает в laravel 5.2 –

+0

Вы можете включить ввод, см. http://stackoverflow.com/questions/31696679/laravel-5-class-input-not-found –

+0

Опять идет нулевое значение. ... как-то значения не поступают в функцию контроллера. –

0

Это должно работать

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

Ошибка: вызов функции-члена getClientOriginalName() на нуле –

+0

Возможно, у вас есть проблема с вашей функцией javascript onsubmit или ваша проверка не позволяет файлу перейти к контроллеру. Попробуйте без функции onsubmit. –

+0

nope..Полная ошибка. –

0

Вы можете написать код, как этот

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