定制 carono/yii2-file-upload 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

carono/yii2-file-upload

最新稳定版本:1.2.6

Composer 安装命令:

composer require carono/yii2-file-upload

包简介

File storage table

README 文档

README

Scrutinizer Code Quality Latest Stable Version Total Downloads License

Установка

  1. Создать миграцию и наследовать её от carono\yii2file\FileUploadMigration
class m170927_171858_fu extends \carono\yii2file\FileUploadMigration
{
    public $tableName = '{{%file_upload}}';
}
  1. Или выполнить yii migrate --migrationPath=@vendor/carono/yii2-file-upload/migrations

Как использовать

  1. В вашу модель таблицы file_upload добавить трейт carono\yii2file\FileUploadTrait
  2. После этого можно сохранять файлы следующим образом:
    FileUpload::startUpload('@runtime/test.txt')->process();
    FileUpload::startUpload('http://example.com/file.txt')->process();
    FileUpload::startUpload(yii\web\UploadedFile $file)->process();

По цепочке можно добавлять дополнительные свойства

FileUpload::startUpload('@runtime/img.png')
->slug('user_avatar') // поле slug
->data(['id'=>1]) // произвольные данные, записываются в data как json
->name('user_avatar.png') // сохраним файл в базе с новым именем
->folder('@app/new_destination') // сохраним файл в новой папке, по умолчанию @app/files
->delete(false) // не удалять файл источник по завершению, по умолчанию - удаляем
->process(); // сохраним модель

Свойства трейта

Свойство Значение Описание
$fileNameAsUid true Реальный файл хранить как uid.extension (bb1fe78c3b769eee34202da2ac1e89c8.txt), иначе как fileName.extension (test.txt)
$eraseOnDelete true при вызове delete(), удалять реальный файл
$fileUploadFolder @app/files папка хранения файлов

Методы трейта

Метод Описание
startUpload($file) начать загрузку файла
deleteFile() удалить реальный файл
getRealFileName() получить имя файла, которое хранится в FS
getRealFilePath() полный путь реального файла
fileExist() проверка существования файла
isImage() файл по mimeType является картинкой
getFileName() имя файла, которое записано в базе (user_avatar.png, а в FS хранится как bb1fe78c3b769eee34202da2ac1e89c8.png)

Особенности

Необходимо учесть, что при переопределение функции getRealFileName(), будет влиять и на имя при сохранении новых файлов подробнее смотрите carono\yii2file\Uploader

Не забудьте добавить поведение yii\behaviors\TimestampBehavior для хранения времени добавления

Загрузку файла необходимо оборачивать try...catch, т.к. будут вызываться Exception при ошибках

Схема

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-12-29