netflex/files

Netflex 文件库

v5.0.2 2024-08-16 15:57 UTC

This package is auto-updated.

Last update: 2024-09-16 16:14:22 UTC


README

Stable version Build status License: MIT Contributors Downloads

[只读] Netflex Files 组件的子树分割(参见 netflex/framework

此包简化了与 Netflex Files API 的工作。

安装

composer require netflex/files

基本用法

File 类提供了一个流畅的查询构建器来搜索文件。

<?php

use Netflex\Files\File;

$files = File::where('type', 'png')
    ->where('name', 'like', 'Hello*')
    ->where('created', '>=', '2021-11-01')
    ->all();

您还可以检索标签列表

<?php

use Netflex\Files\File;
use Netflex\Query\Builder;

$tags = File::tags();

// Or with a query callback:

$tags = File::tags(function ($query) {
    return $query->where('related_customers', [10000, 10010]);
})

// Or with a query builder:
$query = new Builder;
$tags = File::tags($query->where('type', ['jpg', 'png']));

示例,检索标记为 'netflex' 的图片

<?php

use Netflex\Files\File;

$taggedImages = File::where('tags', 'netflex')->all();

上传新文件

Netflex Files 支持多种上传新文件的方法。最有效的方法是直接使用上传的文件,因为这会将文件直接流式传输到 CDN。这是最快的方法。

<?php

// $request is either a Form Request or an instance of Illuminate\Http\Request
$file = $request->file('uploaded-file');

$uploadedFile = File::upload($file); // Uploaded to folder '0'.

// You can also upload an external file like this
$uploadedFile = File::upload('https://example.com/test.jpg');

// Or a base64 encoded file:
$uploadedFile = File::upload('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z/C/HgAGgwJ/lK3Q6wAAAABJRU5ErkJggg==', [
    'name' => 'test.png' // Name is required in this case, as a default name cannot be infered
]);

复制文件

<?php

use Netflex\Files\File;

$file = File::find(10000)->copy('new-name.png');

生成图像 URL

File 类实现了 Netflex\Pages\Contracts\MediaUrlResolvable 接口。因此,它可以像 Netflex 中的任何其他 File 对象一样使用。

<?php

use Netflex\Files\File;

$file = File::find(10000);
$url = media_url($file, 'my-preset-name');
// or
$url = media_url($file, '200x200', MODE_FIT);

您还可以将此对象传递给相应的 Blade 组件

<x-picture :src="$file" preset="my-preset-name" />
<x-image :src="$file" preset="my-preset-name" />