国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鲁甸县| 万源市| 屯留县| 安顺市| 芦山县| 信阳市| 连云港市| 铁力市| 湾仔区| 二连浩特市| 临泉县| 灵璧县| 景东| 永新县| 禄丰县| 甘孜| 金湖县| 广东省| 和田市| 永川市| 永平县| 石楼县| 临湘市| 河间市| 邢台市| 九江县| 胶南市| 黔南| 汝州市| 临武县| 长阳| 滦南县| 偃师市| 林芝县| 北川| 封开县| 乌恰县| 长阳| 会理县| 荔浦县| 昆明市|