2017-01-01 4 views
1

Я хочу загрузить файл в свое приложение. Это файл клинка.Загрузить файл с помощью Laravel 5.3

<form action="/fileUploader " files="true" method="post" role="form" name="file" id="chan" > 
     <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
     <div class="panel panel-default"> 

      <label>Please Select a File to Upload</label> 
      <input type="image"> 
      <button type="submit" name ="Upload_File">Upload File</button> 
     </div> 
    </form> 

Это мой файл контроллер

public function viewFile() 
{ 
    return View::make('/fileUploader'); 
} 

    public function showfileupload(Request $request) 
    { 
     $file = $request -> file('image'); 
     // show the file name 
     echo 'File Name : '.$file->getClientOriginalName(); 
     echo '<br>'; 

     // show file extensions 
     echo 'File Extensions : '.$file->getClientOriginalExtension(); 
     echo '<br>'; 

     // show file path 
     echo 'File Path : '.$file->getRealPath(); 
     echo '<br>'; 

     // show file size 
     echo 'File Size : '.$file->getSize(); 
     echo '<br>'; 

     // show file mime type 
     echo 'File Mime Type : '.$file->getMimeType(); 
     echo '<br>'; 

     // move uploaded File 
     $destinationPath = 'uploads'; 
     $file->move($destinationPath,$file->getClientOriginalName()); 
    } 

Это web.php файл

Route::get('/fileUploader', '[email protected]'); 
Route::post('/fileUploader', '[email protected]'); 

Я получаю сообщение об ошибке под названием FatalThrowableError в channelController.php строке 48: вызовов к функции-члену getClientOriginalName() в нуле.

Как я могу решить эту проблему

ответ

1

Скорее всего, вы пытаетесь вызвать метод - getClientOriginalName() - на объект, который не существует, так что нулевая. Это связано с сообщением об ошибке, которое вы видите.

Я не уверен, почему, но мы можем начать работать в обратном направлении. Давайте используем оператор if с методом hasFile(), чтобы убедиться, что файл действительно присутствует в запросе, прежде чем пытаться выполнить его move().

if ($request->hasFile('image')) { 
    $file->move($destinationPath,$file->getClientOriginalName()); 
} 

Если вы реализуете вышеупомянутое, ошибка все еще существует?

Вот Laravel 5.3 Docs on file uploads. Это может дать вам еще несколько идей.

Если вы обнаружили, что пользователи размещения файлов и hasFile() еще возвращая логическое значение FALSE, то вы можете копаться в файл php.ini и посмотреть на Post_max_size или upload_max_size values, чтобы убедиться, что мы Арен блокировка больших загрузок.

0

VIEW

{!! Form::open(['route'=>'fileUploader', 'id'=>'chan', 'files' => true])!!} 

     <div class="panel panel-default"> 

      <label>Please Select a File to Upload</label> 
       <input type="file" name="image"> 
      <button type="submit">Upload File</button> 
     </div> 
{!! Form::close()!!} 

МАРШРУТЫ

Route::get('/fileUploader', '[email protected]'); 

Route::post('fileUploader', array(
    'as' => 'fileUploader', 
    'uses' => '[email protected]', 
)); 

CONTROLLER

public function showfileupload(Request $request){ 
    $file = $request -> file('image'); 
    dd($file); // This work well for me and return information about the image 
} 

ли копировать и прошлое! Я надеюсь, что это сработает, дайте мне знать о любых ошибках и результатах!

+0

Я получаю нулевое значение – sara99

+0

ok давайте сделаем для вас тест –

+0

Я обновил свой ответ –

Смежные вопросы