marcusvbda/uploader

dev-master 2019-01-11 19:47 UTC

This package is auto-updated.

Last update: 2024-09-12 08:15:14 UTC


README

这个库是一个辅助工具,用于上传文件、将文件分类以及与其他模型关联。

如何使用?

上传文件
  • 上传文件流程
use marcusvbda\uploader\Controllers\UploaderController as Uploader;
use marcusvbda\uploader\Models\File as _File;
use marcusvbda\uploader\Models\FileCategory;
use Illuminate\Http\Request;

$data = $request->all();
//efetua o upload de arquivo
$file = Uploader::upload($data["_file"],$data["_name"],$data["_alt"]);
//cria uma thumbnail para o arquivo
Uploader::makeThumbnail($file);
  • 编辑文件
use marcusvbda\uploader\Controllers\UploaderController as Uploader;

public function fileEdit(_File $file)
{
    $data = ["name" => "novo nome alterado","description"=>"nova descrição alterado"];
    //aqui editamos name e description, o metodo alterará automaticamente o nome do arquivo e suas urls
    $file = Uploader::edit($file,$data);
}
将文件绑定到模型
  • 模型示例
namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use marcusvbda\uploader\Traits\HasFiles;

class Product extends Model
{
	use HasFiles;
    protected $table = 'products';
	protected $fillable = [
		'name'
	];
}
  • 创建和删除文件分类
use marcusvbda\uploader\Models\FileCategory;

public function create(Request $request)
{
    $data = $request->all();
    //adiciona uma nova categoria
    $category = FileCategory::create($data);
}

public function delete(FileCategory $category)
{
    //exclusão simples
    $category->delete();
}

  • 绑定和解绑到模型
use marcusvbda\uploader\Controllers\UploaderController as Uploader;
use marcusvbda\uploader\Models\File as _File;
use App\Models\Product;

public function addFile(Product $product,_File $file)
{
    //$product é uma instância do model PRODUCT, assim como $file é de _File
    //no caso abaixo vinculamos o arquivo ao produto
    $product->addFile($file);
}

public function removeFile(Product $product,_File $file)
{
    //esse metodo apenas desvincula o arquivo de $product, porém o arquivo se mantem na
    //biblioteca de importados
    $product->removeFile($file);
}
  • 访问绑定到模型的文件和分类
use marcusvbda\uploader\Models\File as _File;
use App\Models\Product;

public function getModelFiles(Product $product)
{
    $files = $product->files;
}

public function getCategoryFiles(FileCategory $category)
{
    $files = $category->files;
}

public function getFileCategory(_File $file)
{
    $file = $file->category;
}
  • 重新排序模型中的图片
public function reorderFiles(Product $product)
{
     $order = [
        ["id"=>1,"ordination"=>2],
        ["id"=>2,"ordination"=>4],
        ["id"=>3,"ordination"=>1],
        ["id"=>4,"ordination"=>3]
    ];
    $product->reorderFiles($order);
}

安装

所需包

安装依赖并启动服务器

$ composer require marcusvbda/uploader

在 config/app 中添加以下行

marcusvbda\uploader\UploaderServiceProvider::class

在 dash 中执行

$ php artisan vendor:publish
$ php artisan migrate

配置

在您的 Laravel 项目的 config 目录中,安装完成后,您将找到一个名为 uploader.php 的文件,在其中您可以配置以下信息