婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > thinkphp5 框架結合plupload實現圖片批量上傳功能示例

thinkphp5 框架結合plupload實現圖片批量上傳功能示例

熱門標簽:南京3D地圖標注 重慶外呼電銷系統多少錢 正規電銷機器人系統 邢臺400電話辦理 辦理400電話哪家好點 濟源百應電銷機器人聯系方式 南寧電話外呼系統線路 嘟嘟云外呼系統 咸陽電銷

本文實例講述了thinkphp5 框架結合plupload實現圖片批量上傳功能。分享給大家供大家參考,具體如下:

在extend目錄下新增目錄uploader,并新建類Uploads

?php
namespace uploader;
 
class Uploads {
 public static function upfile($file, $path = 'images', $add_domain = false) {
  $res = ['errno' => 1, 'errmsg' => '上傳圖片錯誤'];
  $data = '';
  if(!empty($file)) {
   // 上傳根目錄
   $file_path = 'uploads/';
   // 如果傳了路徑過來,則加入路徑
   if(!empty($path)) {
    $file_path .= $path .'/';
   }
   if (!file_exists($file_path)) {
    @mkdir($file_path);
   }
   // 上傳
   $info = $file->move($file_path);
   // 獲取后綴
   $ext = strtolower($info->getExtension());
   //判斷后綴是否合法
   $exts = ['jpg', 'png', 'gif', 'jpeg', 'mp4', 'avi', '3gp'];
   if(in_array($ext, $exts)) {
    $save_name = $info->getSaveName();
    $save_path = "/" . $file_path . $save_name;
    if($add_domain) {
     $save_path = "http://www.localhost.com/" . $file_path . $save_name;
    } 
    $res = ['errno' => 0, 'data' => $save_path];
   } else {
    $res = ['errno' => 1, 'errmsg' => $ext];
   }
  } else {
   $res = ['errno' => 1, 'errmsg' => '請選擇圖片!'];
  }
  
  return $res;
 }
}
?>

使用

?php
 
namespace app\backend\controller;
 
use think\Controller;
use think\Request;
use uploader\Uploads;
 
class Upload extends Controller
{
 public function upload(Request $request) {
  $files = $request->file("file");
  $updir = $request->post('updir');
  $res = Uploads::upfile($files, $updir);
  return json_encode($res);
 }
 
 public function del_upload(Request $request) {
  $res = ['errno' => 1, 'errmsg' => '刪除失敗'];
  $filename = $request->post('filename');
  if(!empty($filename)) {
   @unlink($_SERVER['DOCUMENT_ROOT'] . $filename);
   $res = ['errno' => 0, 'errmsg' => $filename];
  }
  return json_encode($res);
 }
 
}
 
?>

前端js

var image_files = new Array(); // 多圖片上傳臨時保存
$(document).ready(function() {
 $('.media-picker').each(function() {
  var el = $(this);
  var elbtn = el.find('.media-picker-button');
  var multi_selection = false;
  var inputField = el.find('input[type=hidden]');
  // 是否多文件上傳
  if(elbtn.attr('data-multiple') == 'multiple') {
   multi_selection = true;
  }
  // 上傳目錄
  var upload_path = inputField.attr('upload-path');
  var uploader = new plupload.Uploader({
   runtimes : 'html5,flash,silverlight,html4',
   browse_button : elbtn.attr('data-id') + '_uploader', 
   multi_selection: multi_selection,
   auto_start: true,
   flash_swf_url : '../plugins/plupload/js/Moxie.swf',
   silverlight_xap_url : '../plugins/plupload/js/Moxie.xap',
   url : '/backend/upload',
   
   filters: {
    mime_types : [ //只允許上傳圖片和zip,rar文件
    { title : "Image files", extensions : "jpg,jpeg,gif,png,bmp" }, 
    { title : "Video files", extensions : "mp4,3gp" }
    ],
    max_file_size : '10mb', //最大只能上傳10mb的文件
    prevent_duplicates : false //不允許選取重復文件
   },
 
   init: { 
    PostInit: function() {},
 
    BeforeUpload: function(up, file) {
     up.setOption('multipart_params', {'updir': upload_path})
    },
 
    FilesAdded: function(up) {
     up.start(); //選擇完后直接上傳
    },
 
    FileUploaded: function(up, file, info) {
     if (info.status == 200)
     {
      var file_type = file.type;
      var is_image = file_type.indexOf('image');
      var is_video = file_type.indexOf('video');
      // 解析返回的數據
      var result = JSON.parse(info.response);
      var img_list = "";
      if(result.errno == 0) {
       // 返回的圖片上傳結果
       var file_name = result.data; 
       if(multi_selection) {
        // 多圖片上傳不考慮視頻
        if (is_image > -1) {
         // 存入臨時數組
         image_files.push(file_name);
         inputField.val(JSON.stringify(image_files));
         for (var i = 0; i  image_files.length; i++) {
          img_list += "li>img src='"+image_files[i]+"' />span class='delete-image'>✖/span>p>"+image_files[i]+"/p>/li>";
         }
        }
       } else {
        inputField.val(file_name);
        if (is_image > -1) {
         img_list = "li>img src='"+result.data+"' />span class='delete-image'>✖/span>p>"+result.data+"/p>/li>";
        }
        if (is_video > -1) { 
         img_list = "li>video controls src='"+result.data+"'>/video>span class='delete-image'>✖/span>p>"+result.data+"p>/li>";
        }
       }
       el.find('.image-list').html(img_list);
      } else {
       alert(result.errmsg);
      }
     }
     else
     {
      alter(info.response);
     } 
    },
 
    Error: function(up, err) {
     alert(err.response);
    }
   }
  })
  uploader.init();
 
 
  // 刪除
  if (multi_selection) {
   el.on('click', '.delete-image', function() {
    var file_name = inputField.val();
    var elDel = $(this);
    // 得到filename
    var current_file_name = elDel.next('p').html();
    // 刪除當前的父級li
    elDel.parent().remove();
    // 重新賦值數組
    var new_image_files = new Array();
    if (image_files != '') {
     new_image_files = image_files;
    } else {
     new_image_files = $.parseJSON(file_name);
    }
    // 去掉數組中的當前值
    for(var i in new_image_files) {
     if(new_image_files[i] == current_file_name) {
      new_image_files.splice(i,1);
      break;
     }
    }
    $.ajax({
      type: "POST",
      url: "/backend/del_upload",
      data: "filename=" + current_file_name,
      success: function(msg) {
        console.log(msg)
      }
    });
    inputField.val(JSON.stringify(new_image_files));
   });
  } else {
   el.on('click', '.delete-image', function(){
    // 顯示值為空
    var file_name = inputField.val();
    el.find('.image-list').html('');
    inputField.val('');
    $.ajax({
     type: "POST",
     url: "/backend/del_upload",
     data: "filename=" + file_name,
     success: function(msg) {
       console.log(msg)
     }
    });
   });
  }
 })
})

更多關于thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • Spring-boot結合Shrio實現JWT的方法
  • JAVA集合框架Map特性及實例解析
  • TP5框架實現一次選擇多張圖片并預覽的方法示例
  • yii框架結合charjs統計上一年與當前年數據的方法示例
  • yii框架結合charjs實現統計30天數據的方法
  • TP5框架實現上傳多張圖片的方法分析
  • Apache Shrio安全框架實現原理及實例詳解

標簽:平頂山 河南 隴南 唐山 武漢 通遼 黃山 南通

巨人網絡通訊聲明:本文標題《thinkphp5 框架結合plupload實現圖片批量上傳功能示例》,本文關鍵詞  thinkphp5,框架,結合,plupload,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《thinkphp5 框架結合plupload實現圖片批量上傳功能示例》相關的同類信息!
  • 本頁收集關于thinkphp5 框架結合plupload實現圖片批量上傳功能示例的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一级特黄大欧美久久久| 欧美精品一区二区三区在线播放| 国产一区二区三区av电影| 国产午夜精品美女毛片视频| 久久亚洲精品小早川怜子| 午夜免费欧美电影| 91在线精品秘密一区二区| 日韩欧美视频在线| 亚洲国产精品久久久久秋霞影院| 国产白丝精品91爽爽久久| 91精品在线一区二区| 亚洲欧美国产77777| 国产成人精品网址| 欧美精品一区二区三区很污很色的| 精品一区二区av| 国产寡妇亲子伦一区二区| 色欧美88888久久久久久影院| 日韩你懂的在线观看| 亚洲电影中文字幕在线观看| 99在线精品视频| 中文字幕欧美国产| 国产一区二区三区在线观看免费| 欧美日韩国产首页| 午夜精品久久久久久久99樱桃| 99久精品国产| 一色屋精品亚洲香蕉网站| 国产一区二区视频在线| 久久久久国产精品麻豆ai换脸| 日本欧美一区二区三区乱码| 在线成人免费视频| 久久精品国产秦先生| 欧美一区二区三区系列电影| 另类欧美日韩国产在线| 日韩欧美国产午夜精品| 欧美专区亚洲专区| 91精品国产品国语在线不卡| 国产精品久久久久久久浪潮网站 | 日韩电影在线观看电影| 中文字幕在线观看不卡| 91精选在线观看| 在线视频你懂得一区| 91丝袜美女网| 欧美精品免费视频| 亚洲午夜精品一区二区三区他趣| 91黄色小视频| 亚洲高清免费在线| 欧美福利一区二区| 久久99国产精品尤物| 久久久av毛片精品| 国产精品黄色在线观看| 午夜精品在线看| 日韩一区二区在线观看| 国产一区二区网址| 一区二区三区中文字幕| 欧美人妇做爰xxxⅹ性高电影| 免费在线看成人av| 日本一区二区综合亚洲| 欧美性一区二区| 久久99精品久久只有精品| 久久久精品日韩欧美| av网站一区二区三区| 91精品综合久久久久久| 久久夜色精品国产欧美乱极品| 日韩成人一级大片| 欧美老肥妇做.爰bbww| 亚洲色图丝袜美腿| 99这里都是精品| 亚洲欧美日韩国产成人精品影院 | 欧美一级视频精品观看| 亚洲午夜免费福利视频| 91看片淫黄大片一级在线观看| 26uuu国产电影一区二区| 午夜日韩在线观看| 欧美一区二区三区免费在线看| 亚洲国产精品一区二区久久 | 国产午夜精品一区二区三区视频| 国产在线不卡一区| www国产亚洲精品久久麻豆| 麻豆精品精品国产自在97香蕉 | 国产成人日日夜夜| 欧美激情综合在线| 成人av小说网| 一区二区三区色| 精品视频免费在线| 日av在线不卡| 久久综合色婷婷| 成人午夜在线视频| 亚洲免费视频中文字幕| 欧美日韩美女一区二区| 久久成人精品无人区| 国产喷白浆一区二区三区| av不卡免费电影| 亚洲午夜激情av| 日韩你懂的在线观看| 成人在线综合网| 亚洲精品久久嫩草网站秘色| 欧美电影一区二区| 夫妻av一区二区| 亚洲一区视频在线观看视频| 91精品国产一区二区三区香蕉| 九九精品视频在线看| 综合久久久久综合| 欧美丰满嫩嫩电影| 国产精品中文有码| 亚洲第一激情av| 久久影院午夜论| 在线免费精品视频| 国产精品一区三区| 亚洲国产一区视频| 国产欧美一区二区精品忘忧草| 欧美色老头old∨ideo| 国产成人在线视频播放| 亚洲一二三专区| 国产日本欧美一区二区| 欧美电影一区二区| 色成人在线视频| 国产在线精品一区二区夜色 | 国产精品亚洲一区二区三区妖精| 亚洲素人一区二区| 精品88久久久久88久久久| 色综合久久九月婷婷色综合| 国产黄色成人av| 美女网站一区二区| 性久久久久久久| 亚洲伦理在线免费看| 国产蜜臀97一区二区三区| 5858s免费视频成人| 色综合久久中文字幕综合网| 国产精一区二区三区| 免费不卡在线观看| 午夜精品免费在线观看| 亚洲女同一区二区| 中文字幕色av一区二区三区| 久久一区二区视频| 精品国产免费一区二区三区香蕉| 欧美午夜片在线看| 色呦呦一区二区三区| 成人黄色在线网站| 国产精品一区在线| 国产suv精品一区二区6| 久久精品国内一区二区三区| 午夜久久电影网| 五月婷婷色综合| 日韩中文欧美在线| 日本成人中文字幕| 蜜臀精品一区二区三区在线观看| 亚洲图片欧美色图| 亚洲一区二区在线视频| 日韩美女啊v在线免费观看| 国产精品九色蝌蚪自拍| 亚洲青青青在线视频| 亚洲婷婷国产精品电影人久久| 中文字幕一区二区三区乱码在线 | 亚洲成人777| 午夜视频在线观看一区二区| 婷婷久久综合九色综合绿巨人| 日日夜夜免费精品| 青椒成人免费视频| 六月丁香婷婷色狠狠久久| 国产在线视频精品一区| bt欧美亚洲午夜电影天堂| 99国产精品久久久| 在线观看亚洲一区| 欧美一区二区三区视频| 精品国一区二区三区| 中文字幕欧美日韩一区| 亚洲线精品一区二区三区 | 亚洲精品成人a在线观看| 亚洲综合一二三区| 男人的j进女人的j一区| 久久精品国产精品亚洲综合| 国产99久久久精品| 欧美性猛交xxxxxx富婆| 日韩免费视频一区| 国产精品午夜电影| 夜夜精品视频一区二区 | 国产91精品久久久久久久网曝门| 不卡高清视频专区| 欧美巨大另类极品videosbest | 青青草国产成人99久久| 国产91丝袜在线播放| 在线观看视频一区| 精品国产伦一区二区三区观看体验| 欧美国产激情二区三区| 亚洲国产成人91porn| 成人午夜av电影| 欧美日韩三级一区二区| 欧美国产精品久久| 久久精品国产久精国产爱| 色综合久久久网| 国产日韩欧美a| 日本人妖一区二区| 色狠狠色狠狠综合| 久久久久久免费毛片精品| 天天操天天干天天综合网| 国产电影精品久久禁18| 91精品国产高清一区二区三区 | 国产精品系列在线播放| 欧美美女网站色| |精品福利一区二区三区|