marcusvbda / uploader
dev-master
2019-01-11 19:47 UTC
Requires
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 的文件,在其中您可以配置以下信息