audentio/laravel-uploader 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

audentio/laravel-uploader

最新稳定版本:1.2.9

Composer 安装命令:

composer require audentio/laravel-uploader

包简介

README 文档

README

Installing

composer require audentio/laravel-uploader

Getting Started

  1. Run php artisan vendor:publish and choose the option for the library
  2. Create an Upload model and implement the \Audentio\LaravelUploader\Models\Interfaces\UploadModelInterface interface, and use the \Audentio\LaravelUploader\Models\Traits\UploadModelTrait trait, Create the GraphQL type/resource, and reference these in config/audentioUploader.php
  3. In routes/api.php add \Audentio\LaravelUploader\LaravelUploader::routes(); to the end to register the uploader routes

Setting up uploads for a new content type

Model

You'll need to make sure to implmement the Audentio\LaravelUploader\Models\Interfaces\UploadContentInterface interface, and use the Audentio\LaravelUploader\Models\Traits\UploadContentTrait trait on your model class.

Finally, you'll need to define a _getUploaderConfig method on your model that defines all the upload content fields and variants. For example:

protected function _getUploaderConfig(): array
{
    return [
        'thumbnail' => [
            'variants' => [
                'thumb' => [
                    'width' => 528,
                    'height' => 280,
                ],
            ],
        ],
    ];
}

Allowed options for each content field include allowed_types, max_files, max_size, variants.

Allowed options for each variant include type (fill, or fit), width, and height.

GraphQL Resource

Fields

In both the getOutputFields and getInputFields for your GraphQL resource you'll need to add the following:

Output Fields

Model::addUploadGraphQLOutputFields($this->getGraphQLTypeName(), $fields);

Input Fields

Model::addUploadGraphQLInputFields($baseScope, $fields);

Mutations

Setup Upload Args (Before initializing the model)
$uploads = Model::setupUploadArgs($args['model']);

Validate Uploads (Before saving the model)

if (!$model->validateUploads($uploads, $errors)) {
    $this->validationError($info, $errors, 'model');
}

Save Uploads (After saving the model, preferrably in the same transaction)

$model->attachUploads($uploads);

Uploading Files

Get an Upload

GET /api/upload/{id}

Create Upload

POST /api/upload

Headers:

Parameters:

  • upload The uploaded file
  • content_type The content type (Should typically match the GraphQL Type name)
  • content_field The upload field name (Will be defined on the input fields for the GraphQL Type associated under uploads)

Response Example:

{
  "success": true,
  "message": null,
  "payload": {
    "upload": {
      "id": "2e5a78f3-2dfe-4298-a73d-7de03937541a",
      "content_type": "Model",
      "content_field": "thumbnail",
      "variants": [
        {
          "file_hash": "75daeb8e884c63a7d3f3ecc3e325f606",
          "file_type": "image\/png",
          "file_size": 52375,
          "width": 276,
          "height": 146,
          "variant": "thumb",
          "url": "https:\/\/bucket-name.s3.us-west-1.amazonaws.com\/Uploads\/Model\/thumbnail\/2e5a78f3-2dfe-4298-a73d-7de03937541a\/thumb_fileName.png"
        }
      ]
    }
  }
}

统计信息

  • 总下载量: 2.01k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-11-06

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固