{"id":22711228,"url":"https://github.com/yiicod/yii2-fileupload","last_synced_at":"2025-04-13T15:12:53.512Z","repository":{"id":57087146,"uuid":"114489972","full_name":"yiicod/yii2-fileupload","owner":"yiicod","description":null,"archived":false,"fork":false,"pushed_at":"2018-11-03T21:36:22.000Z","size":32,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-13T15:12:48.440Z","etag":null,"topics":["blueimp-jquery","php","uploader","yii2","yii2-extension"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yiicod.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-16T21:01:19.000Z","updated_at":"2019-01-17T03:32:01.000Z","dependencies_parsed_at":"2022-08-24T14:59:13.057Z","dependency_job_id":null,"html_url":"https://github.com/yiicod/yii2-fileupload","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yiicod%2Fyii2-fileupload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yiicod%2Fyii2-fileupload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yiicod%2Fyii2-fileupload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yiicod%2Fyii2-fileupload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yiicod","download_url":"https://codeload.github.com/yiicod/yii2-fileupload/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248732487,"owners_count":21152852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blueimp-jquery","php","uploader","yii2","yii2-extension"],"created_at":"2024-12-10T12:15:00.665Z","updated_at":"2025-04-13T15:12:53.481Z","avatar_url":"https://github.com/yiicod.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Yii File uploader based on blueimp jquery-file-upload\n=====================================================\n\n[![Latest Stable Version](https://poser.pugx.org/yiicod/yii2-fileupload/v/stable)](https://packagist.org/packages/yiicod/yii2-fileupload) [![Total Downloads](https://poser.pugx.org/yiicod/yii2-fileupload/downloads)](https://packagist.org/packages/yiicod/yii2-fileupload) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/yiicod/yii2-fileupload/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/yiicod/yii2-fileupload/?branch=master)[![Code Climate](https://codeclimate.com/github/yiicod/yii2-fileupload/badges/gpa.svg)](https://codeclimate.com/github/yiicod/yii2-fileupload)\n\nFile uploader base on blueimp jquery-file-upload. You can write easy themes for\nuploader. This extension provide you all workflow for upload files on your server.\n\n\n#### Install:\n\n\nThe preferred way to install this extension is through [composer](http://getcomposer.org/download/).\n\nEither run\n\n```\nphp composer.phar require --prefer-dist yiicod/yii2-fileupload \"*\"\n```\n\nor add\n\n```json\n\"yiicod/yii2-fileupload\": \"*\"\n```\n\nto the require section of your composer.json.\n\n#### Config\n\nSet to controller\n```php\npublic function actions()\n{\n    return array(\n        'fileUpload' =\u003e [\n            'class' =\u003e 'yiicod\\fileupload\\actions\\FileUploadAction',\n        ],\n    );\n}\n```\n\nAdd behavior for model\n```php\npublic function behaviors()\n{\n    return [\n        'FileUploadBehavior' =\u003e [\n            'class' =\u003e 'yiicod\\fileupload\\models\\behaviors\\FileUploadBehavior',\n            'sourceRepositoryClass' =\u003e [\n                'class' =\u003e SourceRepository::class,\n                'uploadDir' =\u003e Yii::getAlias('@webroot/uploads'), // Base dir for file\n                'uploadUrl' =\u003e '/uploads', // Base url to folder\n            ],\n            'fields' =\u003e array('logo'),            \n        ],\n    ];\n}\n```\n\n#### Usage\n\n```php\nFileUploadWidget::widget([\n    'id' =\u003e 'fileuploader',\n    'model' =\u003e Model::class,\n    'attribute' =\u003e 'modelAttribute',\n    'allowedExtensions' =\u003e array('jpeg', 'jpg', 'gif', 'png'),\n    'maxFileSize' =\u003e 2 * 1024 * 1024, // limit in server-side and in client-side 2mb\n    'uploadDir' =\u003e Yii::getPathOfAlias('@webroot/uploads/temp'), // temp base dir\n    'uploadUrl' =\u003e Yii::$app-\u003egetBaseUrl(true) . '/uploads/temp/', // temp base url\n    'uploader' =\u003e UserAvatar::class,\n    'userData' =\u003e [], // Any data for UploaderInterface\n    'maxUploads' =\u003e -1, // defaults to -1 (unlimited)   \n    'theme' =\u003e [\n        'class' =\u003e BaseTheme::class, //Implements yiicod\\fileupload\\base\\ThemeInterface\n        'multiple' =\u003e false, // allow to add multiple file uploads\n        'buttonText' =\u003e 'Upload file',\n        'dropFilesText' =\u003e 'Upload or Drop here',\n        'clientOptions' =\u003e array(\n            //For chunk uploded\n            'maxChunkSize' =\u003e 10000000\n        ),\n    ],\n    'options' =\u003e [],\n    'defaultUrl' =\u003e 'site/fileUpload',    \n]);\n```\n\nThen add uploader, which extends yiicod\\fileupload\\base\\UploaderInterface and provides functionality to handle uploaded file\n\n#### Upload immediately\n\n```php\nclass UserAvatar implement UploaderInterface {\n    /**\n     * Event for coco uploader\n     * @param string $fullFileName Full file path\n     * @param Array $userdata Userdata from widget\n     * @param Array $results Uploaded result file\n     * @return Array or null\n     */\n    public function uploading($fullFileName, $userdata, $results)\n    {  \n        $model = new UserModel();\n        //Save to temp\n        $model-\u003eonAfterFileUploaded($fullFileName, 'logo');\n    \n        //After save requered set\n        if ($model-\u003esave()) {\n                return [\n                    'url' =\u003e $model-\u003egetFileSrc('logo'),        \n                    '...' =\u003e '...'\n                ];\n            )else{\n                //Delete temp uploaded file\n                $model-\u003eresetFile('logo');\n                return [\n                    'error' =\u003e 'Insert error message'\n                    '...' =\u003e '...'\n                ];\n            };\n        }\n    }\n}\n```\n\n#### Upload on submit\n\n```php\nclass UserAvatar implement UploaderInterface{\n    \n    /**\n     * Event for coco uploader\n     * @param string $fullFileName Full file path\n     * @param Array $userdata Userdata from widget\n     * @param Array $results Uploaded result file\n     * @return Array or null\n     */\n    public function uploading($fullFileName, $userdata, $results)\n    { \n        $model = new UserModel();\n        //Save to temp\n        $model-\u003eonAfterFileUploaded($fullFileName, 'logo');\n    }\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyiicod%2Fyii2-fileupload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyiicod%2Fyii2-fileupload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyiicod%2Fyii2-fileupload/lists"}