yii2中使用webuploader實(shí)現(xiàn)圖片上傳的實(shí)戰(zhàn)項(xiàng)目
圖片上傳幾乎是應(yīng)用必備,前面也針對(duì) kartik 的 fileinput 做了一篇詳細(xì)的說(shuō)明,不過(guò)很多人反饋各種問(wèn)題,下面針對(duì) webuploader 的使用單獨(dú)寫(xiě)了一個(gè)組件。該組件可以更好的處理 Yii2 在圖片上傳過(guò)程中帶來(lái)的一系列問(wèn)題,目前支持多圖多字段多modal的混合上傳。
介紹之前我們先演示下效果。

安裝
推薦使用composer進(jìn)行安裝
$ php composer.phar require bailangzhan/yii2-webuploader dev-master
使用
params.php或者params-local.php內(nèi)增加webuploader和domain配置項(xiàng)
// 圖片服務(wù)器的域名設(shè)置,拼接保存在數(shù)據(jù)庫(kù)中的相對(duì)地址,可通過(guò)web進(jìn)行展示
'domain' => 'http://blog.m/',
'webuploader' => [
// 后端處理圖片的地址,value 是相對(duì)的地址
'uploadUrl' => 'blog/upload',
// 多文件分隔符
'delimiter' => ',',
// 基本配置
'baseConfig' => [
'defaultImage' => 'http://img1.imgtn.bdimg.com/it/u=2056478505,162569476&fm=26&gp=0.jpg',
'disableGlobalDnd' => true,
'accept' => [
'title' => 'Images',
'extensions' => 'gif,jpg,jpeg,bmp,png',
'mimeTypes' => 'image/*',
],
'pick' => [
'multiple' => false,
],
],
],
webuploader['baseConfig'] 參考 webuploader官方的參數(shù)說(shuō)明
視圖文件
單圖
<?php
echo $form->field($model, 'file')->widget('manks\FileInput', [
]);
?>
多圖
<?php
echo $form->field($model, 'file2')->widget('manks\FileInput', [
'clientOptions' => [
'pick' => [
'multiple' => true,
],
// 'server' => Url::to('upload/u2'),
// 'accept' => [
// 'extensions' => 'png',
// ],
],
]); ?>
控制器 controller的地址可以在params.php或者params-local.php中配置 Yii::$app->params['webuploader']['uploadUrl'], 也可以在 clientOptions中配置 server 項(xiàng)??刂破餍枰祷氐臄?shù)據(jù)格式如下
// 錯(cuò)誤時(shí)
{"code": 1, "msg": "error"}
// 正確時(shí), 其中 attachment 指的是保存在數(shù)據(jù)庫(kù)中的路徑,url 是該圖片在web可訪問(wèn)的地址
{"code": 0, "url": "http://domain/圖片地址", "attachment": "圖片地址"}
clientOptions同樣參考 webuploader官方的參數(shù)說(shuō)明
注意
如果是修改的多圖片操作,務(wù)必保證 $model->file = 'src1,src2,src3,...'; 或者 $model->file = ['src1', 'src2'. 'src3', ...];
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP中file_get_contents函數(shù)抓取https地址出錯(cuò)的解決方法(兩種方法)
本文通過(guò)兩種方法解決PHP中file_get_contents函數(shù)抓取https地址出錯(cuò),需要的朋友可以參考下2015-09-09
thinkPHP連接sqlite3數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法(附Thinkphp代碼生成器下載)
這篇文章主要介紹了thinkPHP連接sqlite3數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,涉及thinkPHP的數(shù)據(jù)庫(kù)相關(guān)配置技巧,并附帶了Thinkphp代碼生成器供讀者下載使用,需要的朋友可以參考下2016-05-05
PHP7 安裝event擴(kuò)展的實(shí)現(xiàn)方法
這篇文章主要介紹了PHP7 安裝event擴(kuò)展的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
PHP中如何使用session實(shí)現(xiàn)保存用戶登錄信息
這篇文章主要給大家介紹在php中是如何使用session實(shí)現(xiàn)保存用戶登錄信息的,涉及到php session 用戶登錄等一些知識(shí)點(diǎn),使用session保存用戶登錄信息要比cookie安全很多。感興趣的朋友一起學(xué)習(xí)吧2015-10-10
Yii2簡(jiǎn)單實(shí)現(xiàn)給表單添加驗(yàn)證碼的方法
這篇文章主要介紹了Yii2簡(jiǎn)單實(shí)現(xiàn)給表單添加驗(yàn)證碼的方法,簡(jiǎn)單分析了Yii中控制器的相關(guān)設(shè)置、表單模型的創(chuàng)建及視圖的調(diào)用技巧,需要的朋友可以參考下2016-07-07
將博客園(cnblogs.com)數(shù)據(jù)導(dǎo)入到wordpress的代碼
博客園限制太多,于是決定從博客園(cnblogs)更換自己個(gè)人的博客。WORDPRESS口碑還不錯(cuò),于是決定用用看。之前發(fā)的數(shù)百篇日志需要導(dǎo)入過(guò)來(lái),在網(wǎng)上搜了一會(huì),發(fā)現(xiàn)沒(méi)有這個(gè)插件,無(wú)奈只能自己寫(xiě)一個(gè)2013-01-01

