wielski/laravel-storager

dev-master 2015-12-26 05:00 UTC

This package is not auto-updated.

Last update: 2024-09-18 20:23:01 UTC


README

特性

  • 使用 Laravel Storage 处理文件。
  • 通过 Laravel 路由加载文件,而不是公共路径。
  • 保存图片带有缩略图,大小可自定义。

安装

  1. 安装 File API

    composer require wielski/laravel-fileapi
  2. config/app.php 中设置服务提供者

    Wielski\FileApi\FileApiServiceProvider::class,
  3. 发布配置文件

    php artisan vendor:publish --tag=fileapi_config

配置

config/fileapi.php

  1. 填写存储路径,它会为您创建路由。

    'path' => ['/images/event/', '/images/article/'],

    它会生成如下路由

    Route::get('/images/event/{filename}', function ($filename) {
        $entry = new \Wielski\FileApi\FileApi('/images/event/');
        return $entry->getResponse($filename);
    });
    
    Route::get('/images/article/{filename}', function ($filename) {
        $entry = new \Wielski\FileApi\FileApi('/images/article/');
        return $entry->getResponse($filename);
    });
  2. 设置默认缩略图大小(键值对形式)

    'default_thumbs' => ['S' => '96x96', 'M' => '256x256', 'L' => '480x480'],

用法

初始化 File API

use \Wielski\FileApi\FileApi;
    
$fa = new FileApi(); # use default path (as '/images/')
$fa_event = new FileApi('/images/event/'); # initialize it by giving a base path
$fa_article = new FileApi('/images/article/'); # initiate another instance

通过上传的文件保存

  • 默认用法:获取唯一文件名

    $file = $fa->save(\Input::file('main_image')); // => wfj412.jpg
  • 自定义上传文件名

    $file = $fa->save(\Input::file('main_image'), 'custom-file-name'); // => custom-file-name.jpg
  • 默认设置三个缩略图(等比例缩放)

缩略图功能

  • 设置自定义缩略图大小

    $file = $fa
        ->thumbs([
        	'S' => '150x100',
        	'M' => '300x200',
        	'L' => '450x300'
        	])
        ->save(\Input::file('main_image'));
  • 制作裁剪缩略图

     $file = $fa->crop()->save(\Input::file('main_image'));

获取图片 URL

$fa->get('wfj412.jpg');        // => get image url of 'L' size
$fa->get('wfj412.jpg', 'M');   // => get image url of 'M' size
$fa->get('wfj412.jpg', 'full); // => get image url of full size

删除图片和缩略图

$fa->drop('wfj412.jpg');

获取文件完整路径(从 Laravel Storage 抽象路径)

$fa->getPath('wfj412.jpg'); // => '/images/event/wfj412.jpg'

解析文件路径到 URL

如果您将文件存储在云存储中并且想获取云站点的 URL,可以使用 url() 方法来获取

echo $fa->getUrl('wfjsdf.jpg'); // => "https://s3-ap-northeast-1.amazonaws.com/xxx/xxx/55c1e027caa62L.png"

与 Blade 一起工作

在 app.php 中为 FileApi 类添加别名

'FileApi'   => Wielski\FileApi\FileApi::class,

在 Blade 中使用

{{ FileApi::getFile('/images/avatars/', 'image.jpg', 'S') ?: 'default.jpg' }}

与 Laravel Storage 一起工作

  • 获取文件内容

    \Storage::get($fa->getPath('wfj412.jpg'));
  • 写入文件

    \Storage::put($fa->getPath('wfj412.jpg'));
  • 获取 MIME 类型

    \Storage::mimeType($fa->getPath('wfj412.jpg'));