oonne/yii2-webuploader

基于WebUploader的Yii2大文件分片上传扩展。

安装次数: 188

依赖者: 0

建议者: 0

安全: 0

星标: 3

关注者: 1

分支: 0

开放问题: 1

类型:yii2-extension

1.0.4 2019-06-28 03:04 UTC

This package is auto-updated.

Last update: 2024-09-28 15:49:44 UTC


README

基于WebUploader的Yii2大文件分片上传扩展。

基于Webuploader 的Yii2大文件上传扩展。Webuploader 是由Baidu WebFE(FEX)团队开发的一个以HTML5为主,FLASH为辅的现代文件上传组件,支持图片上传和文件上传。本扩展仅实现大文件分片上传功能。

安装

建议通过 composer 安装此扩展。

运行以下命令

php composer.phar require --prefer-dist oonne/yii2-webuploader "*"

或在您的 composer.json 文件的 require 部分添加

"oonne/yii2-webuploader": "*"

到您的 composer.json 文件。

使用方法

  • 在视图中添加上传小部件,例如
<?php use oonne\webuploader\Upload; ?>
<?= Upload::widget(['url'=>'/upload/upload']) ?>

在 "url" 中输入服务处理路径;

  • 添加一个上传控制器,例如
<?php
namespace backend\controllers;

use Yii;
use yii\web\Response;
use yii\web\UploadedFile;
use oonne\webuploader\UploadServer;

class UploadController extends \yii\rest\Controller
{
    public function behaviors()
    {
        $behaviors = parent::behaviors();
        $behaviors['contentNegotiator']['formats'] = [
            'application/json' => Response::FORMAT_JSON
        ];
        return $behaviors;
    }

    protected function verbs()
    {
        return [
            'upload' => ['post'],
        ];
    }

    public function actionUpload()
    {
        $fileData = Yii::$app->request->post();
        $file = UploadedFile::getInstanceByName('file');
        $fileRet = UploadServer::uploadFile($file, $fileData, Yii::$app->params['temppath'], Yii::$app->params['filepath']);

        if ($fileRet['ret'] == 0) {
            return [
                'Ret' => 0,
                'Filename' => $fileRet['file_name'],
                'Url' => '$downloadUrl',
                'Callback' => 'location.reload(true)',
            ];
        } else {
            return [
                'Ret' => 1000,
            ];    
        }
    }
}