国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

yii2多圖上傳組件的使用教程php實例

2020-03-22 19:45:46
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了yii2多圖上傳組件的使用教程,在使用過程中有許多注意要點,下面小編給大家分享到腳本之家平臺,需要的朋友可以參考下

最近在使用yii2開發一個表單頁面的時候,有多圖上傳的需求,稍微找了找這方面的組件,基本都安利fileInput這個組件,于是就嘗試著使用這個庫來完成后端表單頁面的多圖上傳功能。使用的過程中發現還是有不少小細節需要注意的,于是記錄一下使用的過程。

yii2-widget-fileinput 這個庫的github地址在這里,安裝的部分就很常規了,按文檔走就可以了。

我們來看官方文檔展示的幾個常規操作:

use kartik/widgets/FileInput// or use kartikile/FileInput if you have only installed yii2-widget-fileinput in isolation// 使用ActiveForm 和 model綁定的單張圖片示例echo $form- field($model, avatar )- widget(FileInput::html' target='_blank'>classname(), [ options = [ accept = image/* ],// 多圖上傳示例echo label >

而這些都是常規操作,我們來設想一下,我們要完成淘寶的商品添加,有個商品表,有著一對多關系的若干張圖片,這時候就需要用到多圖上傳功能了。而且我們還希望上傳圖片是異步的,那么我們可以這么配置我們的fileInput組件

 ?= $form- field($model, image[] )- label($label)- widget(FileInput::classname(), [ // name = ImgSelect , language = zh-CN ,  options = [ multiple = true, accept = image/* ],  pluginOptions = [  initialPreview = $initialPreview,  initialPreviewConfig = $initialPreviewConfig,  allowedPreviewTypes = [ image ],  allowedFileExtensions = [ jpg , gif , png ],  previewFileType = image ,  overwriteInitial = false,  browseLabel = 選擇圖片 , msgFilesTooMany = 選擇上傳的圖片數量({n}) 超過允許的最大圖片數{m}! ,  maxFileCount = 5,//允許上傳最多的圖片5張  maxFileSize = 2048,//限制圖片最大200kB  uploadUrl = Url::to([ /upload/image ]), // uploadExtraData = [ testid = listimg ],  uploadAsync = true,//配置異步上傳還是同步上傳  pluginEvents = [  filepredelete = function(event, key) {  return (!confirm( 確認要刪除  } ,  fileuploaded = function(event, data, previewId, index) {  $(event.currentTarget.closest( form )).append(data.response.imgfile); } ,  filedeleted = function(event, key) {  $(event.currentTarget.closest( form )).find( # +key).remove();  return; } , ]); ? 

我們在控制器配置好圖片瀏覽的配置,傳入進來。代碼里的關鍵點我已經加上了配置,我們可以看到,這時異步上傳的url已經配置到了 upload/image 這個控制器里,而我們也在刪除,上傳等操作完成時加上了js的回調。

如上所述,我們羅列了一些都是組件 FileInput的基本屬性和設置,如有所需,可查看文檔看屬性的詳細說明。

看下上傳圖片的控制器里,我們是怎么寫 actionImage 這個函數

/**  * 上傳圖片到臨時目錄  * @return string  * @throws /yii/base/Exception  public function actionImage()  if (Yii::$app- request- isPost) {  $res = [];  $initialPreview = [];  $initialPreviewConfig = [];  $images = UploadedFile::getInstancesByName( UploadImage[image]  if (count($images) 0) {  foreach ($images as $key = $image) {  if ($image- size 2048 * 1024) {  $res = [ error = 圖片最大不可超過2M  return json_encode($res);  if (!in_array(strtolower($image- extension), array( gif , jpg , jpeg , png ))) {  $res = [ error = 請上傳標準圖片文件, 支持gif,jpg,png和jpeg.  return json_encode($res);  $dir = /uploads/temp/  //生成唯一uuid用來保存到服務器上圖片名稱  $pickey = ToolExtend::genuuid();  $filename = $pickey . . . $image- getExtension(); //如果文件夾不存在,則新建文件夾  if (!file_exists(Yii::getAlias( @backend ) . /web . $dir)) {  FileHelper::createDirectory(Yii::getAlias( @backend ) . /web . $dir, 777);  $filepath = realpath(Yii::getAlias( @backend ) . /web . $dir) . /  $file = $filepath . $filename;  if ($image- saveAs($file)) {  $imgpath = $dir . $filename;  /*Image::thumbnail($file, 100, 100)  - save($file . _100x100.jpg , [ quality = 80]);  // array_push($initialPreview, img src= . $imgpath . >

到此,多圖上傳的工作我們也就完美的實現了。

為了實現圖片的刪除效果,這里可以先上傳兩張圖片。你可以單張上傳也可以多張上傳。

上傳成功后你可以刷新當前頁面,因為一開始我們就在controller中實現了圖片的預覽工作,所以理應會展示我們已經上傳的兩張圖片。

至于刪除函數就不講了,只要在瀏覽里配置上刪除的url,也是一樣的操作咯。

總結

以上所述是小編給大家介紹的yii2多圖上傳組件的使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:

PHP實現用戶登錄的案例代碼php實例

ThinkPHP防止重復提交表單的方法實例分析php實例

PHP分頁顯示的方法分析【附PHP通用分頁類php技巧

以上就是yii2多圖上傳組件的使用教程php實例的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 理塘县| SHOW| 泸西县| 青龙| 五大连池市| 广丰县| 庆云县| 皋兰县| 宽城| 京山县| 肇源县| 烟台市| 卓资县| 滨州市| 丘北县| 中山市| 木里| 榆社县| 屏山县| 图们市| 卢龙县| 福鼎市| 勐海县| 名山县| 潮州市| 定州市| 百色市| 南阳市| 丹阳市| 南木林县| 平原县| 漳平市| 小金县| 宜州市| 伽师县| 普宁市| 读书| 西乌珠穆沁旗| 寻乌县| 舒城县| 九寨沟县|