Laravel - 文件上传

  • 简述

    在 Laravel 中上传文件非常简单。我们需要做的就是创建一个视图文件,用户可以在其中选择要上传的文件,并创建一个控制器,在其中处理上传的文件。
    在视图文件中,我们需要通过添加以下代码行来生成文件输入。
    
    Form::file('file_name');
    
    在 Form::open() 中,我们需要添加‘files’=>’true’如下所示。这有助于表单分多个部分上传。
    
    Form::open(array('url' => '/uploadfile','files'=>'true'));
    
  • 例子

    步骤 1- 创建一个名为的视图文件resources/views/uploadfile.php并将以下代码复制到该文件中。
    resources/views/uploadfile.php
    
    <html>
       <body>
          <?php
             echo Form::open(array('url' => '/uploadfile','files'=>'true'));
             echo 'Select the file to upload.';
             echo Form::file('image');
             echo Form::submit('Upload File');
             echo Form::close();
          ?>
       </body>
    </html>
    
    步骤 2− 创建一个名为UploadFileController通过执行以下命令。
    
    php artisan make:controller UploadFileController --plain
    
    步骤 3− 成功执行后,您将收到以下输出 −
    上传文件控制器
    步骤 4- 将以下代码复制到
    app/Http/Controllers/UploadFileController.php文件。
    app/Http/Controllers/UploadFileController.php
    
    <?php
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    use App\Http\Requests;
    use App\Http\Controllers\Controller;
    class UploadFileController extends Controller {
       public function index() {
          return view('uploadfile');
       }
       public function showUploadFile(Request $request) {
          $file = $request->file('image');
       
          //Display File Name
          echo 'File Name: '.$file->getClientOriginalName();
          echo '<br>';
       
          //Display File Extension
          echo 'File Extension: '.$file->getClientOriginalExtension();
          echo '<br>';
       
          //Display File Real Path
          echo 'File Real Path: '.$file->getRealPath();
          echo '<br>';
       
          //Display File Size
          echo 'File Size: '.$file->getSize();
          echo '<br>';
       
          //Display File Mime Type
          echo 'File Mime Type: '.$file->getMimeType();
       
          //Move Uploaded File
          $destinationPath = 'uploads';
          $file->move($destinationPath,$file->getClientOriginalName());
       }
    }
    
    步骤 5- 添加以下行app/Http/routes.php.
    app/Http/routes.php
    
    Route::get('/uploadfile','UploadFileController@index');
    Route::post('/uploadfile','UploadFileController@showUploadFile');
    
    步骤 6− 访问以下 URL 来测试上传文件功能。
    
    http://localhost:8000/uploadfile
    
    步骤 7− 您将收到如下图所示的提示。
    浏览文件