uploadify是來(lái)自國(guó)外的一款優(yōu)秀jquery插件,主要功能是批量上傳文件
下載Uploadify控件可以到git網(wǎng)站上找,找到自己適合用的.例如我們下面用個(gè)就是從
https://github.com/xjflyttp/yii2-uploadify-widget 下載的,里面也有詳細(xì)的操作文檔。 ? (推薦學(xué)習(xí):yii教程)
① 配置composer.json (就存在網(wǎng)站根目錄下),找到require,然后添加我們的uploadify
"require": { "php": ">=5.4.0", "yiisoft/yii2": ">=2.0.6", "yiisoft/yii2-bootstrap": "*", "yiisoft/yii2-swiftmailer": "*", "xj/yii2-uploadify-widget": "~2.0.0" //這里是新添加的 },
② 利用composer 將yii2-uploadify-widget 下載到我們網(wǎng)站, 打開(kāi)在網(wǎng)站根目錄運(yùn)行命令行 ,等待下載如圖:
③ 視圖的處理
<?php use yii\web\JsExpression; //外部TAG echo Html::fileInput('test', NULL, ['id' => 'test']); echo Uploadify::widget([ 'url' => yii\helpers\Url::to(['s-upload']), 'id' => 'test', //需要跟上fileInput 的id 對(duì)應(yīng) 'csrf' => true, 'renderTag' => false, 'jsOptions' => [ 'width' => 100, 'height' => 40, 'onUploadError' => new JsExpression(<<<EOF function(file, errorCode, errorMsg, errorString) { console.log('The file ' + file.name + ' could not be uploaded: ' + errorString + errorCode + errorMsg); } EOF ), 'onUploadSuccess' => new JsExpression(<<<EOF function(file, data, response) { data = JSON.parse(data); if (data.error) { console.log(data.msg); } else { //在此處理你的圖片 console.log(data.fileUrl); } } EOF
④?配置Controller 層
<?php namespace \backend\controllers; use xj\uploadify\UploadAction; class TestController extends \yii\web\Controller { public function actions() { return [ 's-upload' => [ 'class' => UploadAction::className(), //磁盤(pán)目錄 'basePath' => '@webroot/upload', //訪(fǎng)問(wèn)目錄 'baseUrl' => '@web/upload', //防止跨站攻擊 'enableCsrf' => true, // default 'postFieldName' => 'Filedata', // default //BEGIN METHOD 'format' => [$this, 'methodName'], //END METHOD //BEGIN CLOSURE BY-HASH //是否覆蓋相同文件 'overwriteIfExist' => true, //創(chuàng)建圖片名稱(chēng) 'format' => function (UploadAction $action) { $fileext = $action->uploadfile->getExtension(); $filename = sha1_file($action->uploadfile->tempName); return "{$filename}.{$fileext}"; }, //想要多調(diào)用這個(gè)函數(shù) 'format' => function (UploadAction $action) { $fileext = $action->uploadfile->getExtension(); $filehash = sha1(uniqid() . time()); $p1 = substr($filehash, 0, 2); $p2 = substr($filehash, 2, 2); return "{$p1}/{$p2}/{$filehash}.{$fileext}"; }, */ 'validateOptions' => [ 'extensions' => ['jpg', 'png'], //后綴驗(yàn)證 'maxSize' => 1 * 1024 * 1024, //上傳大小限制 ], //驗(yàn)證前處理 'beforeValidate' => function (UploadAction $action) { //throw new Exception('test error'); }, //驗(yàn)證后處理 'afterValidate' => function (UploadAction $action) {}, //保存前處理 'beforeSave' => function (UploadAction $action) {}, //保存后處理 'afterSave' => function (UploadAction $action) { //$action->output 返回給瀏覽器的數(shù)據(jù) //返回Url 圖片返回的路徑 //$action->getWebUrl() //圖片的名稱(chēng) //$action->getFilename(); //保存圖片的物理位置 //$action->getSavePath(); //輸出 //$action->output['fileUrl'] = $action->getWebUrl(); //$action->output['fileName'] = $action->getFilename(); //$action->output['filePath'] = $action->getSavePath(); //$action->getFilename(); // "image/yyyymmddtimerand.jpg" //$action->getWebUrl(); // "baseUrl + filename, /upload/image/yyyymmddtimerand.jpg" //$action->getSavePath(); // "/var/www/htdocs/upload/image/yyyymmddtimerand.jpg" $action->output[‘fileUrl’] = $action->getWebUrl() }, ], ]; } } ?>
以上就是yii2怎么用uploadify的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)