NOMGUY's avatar
Level 16

Image Uploading

I am uploading image using Czim/laravel-paperclip package. This is my Image Model:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Image extends Model implements \Czim\Paperclip\Contracts\AttachableInterface
{
    use \Czim\Paperclip\Model\PaperclipTrait;

    protected $table='images'; 
    public $primarykey='id';

    public function albums(){
        return $this->belongsTo('App\Album');
    }

    public function __construct(array $attributes = [])
    {
        $this->hasAttachedFile('image', [
            'styles' => [
                'medium' => '300x300',
                'thumb' => '100x100'
            ]
        ]);
        parent::__construct($attributes);   
    }
}

This is my Album Model:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Album extends Model
{
    protected $table='albums';
    public $primarykey='id';

    protected $fillable = [
        'user_id',
        'album_name'
    ];

    public function users(){
        return $this->belongsTo('App\User');
    }

    public function images(){
        return $this->hasMany('App\Image');
    }
}

and This is my Store function in Albums Controller:

public function store(Request $request)
    {
        $album = Album::create([
            'album_name'    =>  request('album_name'),
            'user_id'       =>  auth()->id()
        ]);

        if( true ) {
            // foreach( request("image") as $image ) {
                $image           = new Image();
                $image->image    = request("image");
                $image->album_id = $album->id;
                $album->images()->save($image);
            // }
        }
        return redirect('/albums')->with('success','Album Created');
    }

It is throwing an error as:

"Driver [] is not supported."

This is my filesystems.php in config:

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Default Filesystem Disk
    |--------------------------------------------------------------------------
    |
    | Here you may specify the default filesystem disk that should be used
    | by the framework. The "local" disk, as well as a variety of cloud
    | based disks are available to your application. Just store away!
    |
    */

    'default' => env('FILESYSTEM_DRIVER', 'local'),

    /*
    |--------------------------------------------------------------------------
    | Default Cloud Filesystem Disk
    |--------------------------------------------------------------------------
    |
    | Many applications store files both locally and in the cloud. For this
    | reason, you may specify a default "cloud" driver here. This driver
    | will be bound as the Cloud disk implementation in the container.
    |
    */

    'cloud' => env('FILESYSTEM_CLOUD', 's3'),

    /*
    |--------------------------------------------------------------------------
    | Filesystem Disks
    |--------------------------------------------------------------------------
    |
    | Here you may configure as many filesystem "disks" as you wish, and you
    | may even configure multiple disks of the same driver. Defaults have
    | been setup for each driver as an example of the required options.
    |
    | Supported Drivers: "local", "ftp", "sftp", "s3", "rackspace"
    |
    */

    'disks' => [

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

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION'),
            'bucket' => env('AWS_BUCKET'),
            'url' => env('AWS_URL'),
        ],

    ],

];

Why am I getting that error?

0 likes
0 replies

Please or to participate in this conversation.