2016-01-03 41 views
5

ファイルアップロードAWSへのS3 Laravel私は、次のエラーを取得しています5.1

FatalErrorException in FilesystemManager.php line 179: Class 'League\Flysystem\AwsS3v3\AwsS3Adapter' not found

コード:

あなたが最初のコンソールで実行する必要が
//Composer.json 

    "require": { 
      "php": ">=5.5.9", 
      "laravel/framework": "5.1.*", 
      "laravel/socialite": "~2.0", 
      "guzzlehttp/guzzle": "~4.0", 
      "predis/predis": "^1.0", 
      "tymon/jwt-auth": "0.5.*", 
      "league/flysystem-aws-s3-v2": "^1.0" 
     }, 
     "require-dev": { 
      "fzaninotto/faker": "~1.4", 
      "mockery/mockery": "0.9.*", 
      "phpunit/phpunit": "~4.0", 
      "phpspec/phpspec": "~2.1" 
     } 

//config/filesystem.php 


    'default' => 's3', 
    'cloud' => 's3', 
    'disks' => [ 

      'local' => [ 
       'driver' => 'local', 
       'root' => storage_path('app'), 
      ], 

      's3' => [ 
       'driver' => 's3', 
       'key' => '***********', 
       'secret' => '**************************************', 
       'region' => '*****', 
       'bucket' => '************', 
      ], 


     ], 

//FileController 

    namespace App\Http\Controllers; 
    use Illuminate\Http\Request; 
    use App\Http\Requests; 
    use Illuminate\Contracts\Filesystem\Filesystem; 
    use App\Http\Controllers\Controller; 
    use JWTAuth; 
    use Tymon\JWTAuth\Exceptions\JWTException; 
    public function postProfilePhoto(Request $request) 
     { 
      $token=JWTAuth::getToken(); 
      $user = JWTAuth::toUser($token); 
      $image = $request->file('image'); 
      //return $image; 
      $id=$user->id; 
      if($image) 
      { 
      $imageFileName = time() . '.' . $image->getClientOriginalExtension(); 
      //return $imageFileName; 
      $s3 = \Storage::disk('s3'); 
     $filePath = '/profilePhotos/'.$id . $imageFileName; 
     $s3->put($filePath, file_get_contents($image), 'public'); 

      try{ 
       ProfilePhoto::create(['userId'=>$id,'imgUrl'=>$filePath]); 

       return json_encode(['message'=>'Done!','Id'=>200,'Response'=>'']); 
      } 
      catch(Exception $e) 
      { 
       return json_encode(['message'=>'Not Allowed!','Id'=>402,'Response'=>'']); 
      } 
      } 
      else 
      { 
      return json_encode(['message'=>'No Pic!','Id'=>404,'Response'=>'']); 
     } 
     } 

答えて

13

composer remove league/flysystem-aws-s3-v2 

コンソールで実行する必要があります:

composer require league/flysystem-aws-s3-v3:~1.0 

S3ファイルシステムをインストールします。

Laravel 5.1+ requires V3 versionおよびV2ではなく。

+0

I次のエラーが発生しました。 league/flysystem-aws-s3-v3:〜1.0 aws-ws-sdk-php3.*@dev-> aws-sdk-php [3.0.0 3.0.1 ....}によって充足されることが必要です –

+0

他の古いパッケージを使用したい他の古いパッケージもあります。あなたはこれを確認する必要があります –

+0

ありがとう@マーシャン。あなたは私を救いました。私は "guzzlehttp/guzzle"が必要です: "guzzlehttp/guzzle"から "〜6.0": "〜4.0" –

関連する問題