婷婷综合国产,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亚洲精品久久久蜜桃网站 | 欧美日韩国产精品成人| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 色综合久久综合网欧美综合网| 国产91精品一区二区| 懂色av噜噜一区二区三区av| 国产成人精品在线看| 99久久精品一区| 色美美综合视频| 7777精品久久久大香线蕉| 欧美丰满美乳xxx高潮www| 欧美电视剧免费观看| 国产亚洲欧美日韩俺去了| 成人欧美一区二区三区| 亚洲一区二区成人在线观看| 理论片日本一区| 成人一区二区三区在线观看| 欧美影视一区二区三区| 日韩一区二区精品葵司在线| 国产色产综合产在线视频 | 在线观看网站黄不卡| 欧美日韩一区二区三区不卡| 欧美成人video| 最近日韩中文字幕| 图片区日韩欧美亚洲| 国产成人在线色| 欧美日韩dvd在线观看| 欧美mv日韩mv国产网站app| 国产精品超碰97尤物18| 午夜成人在线视频| 成人午夜电影小说| 日韩一二三四区| 国产精品高清亚洲| 麻豆精品精品国产自在97香蕉| 成人av一区二区三区| 欧美一区二区精美| 17c精品麻豆一区二区免费| 日韩高清欧美激情| 色综合天天性综合| 日韩久久免费av| 国产精品福利一区二区| 精品一区二区成人精品| 在线观看国产一区二区| 国产欧美一区二区精品仙草咪| 亚洲成精国产精品女| 99久免费精品视频在线观看 | 欧美亚洲国产一区在线观看网站 | 7777精品伊人久久久大香线蕉最新版| 欧美激情在线一区二区三区| 国产女人水真多18毛片18精品视频| 亚洲妇女屁股眼交7| 91网站最新网址| 国产精品午夜在线| 国产精品一二一区| 精品处破学生在线二十三| 三级久久三级久久| 精品视频在线免费看| 亚洲精品一二三四区| av在线综合网| 国产精品伦一区二区三级视频| 国产剧情一区二区| 欧美成人精品高清在线播放| 免费在线视频一区| 日韩一区二区免费在线观看| 日韩av中文字幕一区二区三区| 欧美色综合影院| 香蕉av福利精品导航| 欧美片在线播放| 日产国产高清一区二区三区| 欧美日韩一区视频| 亚洲va欧美va人人爽午夜| 欧美丝袜丝nylons| 日韩在线观看一区二区| 欧美午夜视频网站| 亚洲国产综合视频在线观看| 欧美日韩日日骚| 男男视频亚洲欧美| 精品国产91乱码一区二区三区 | 99久久er热在这里只有精品15 | 91首页免费视频| 亚洲乱码国产乱码精品精的特点 | 亚洲一区二区高清| 欧美一区二区精美| 国产一区二区在线视频| 久久精子c满五个校花| 国产精品一二一区| 一区二区三区四区激情| 欧美精品丝袜中出| 国产一区二区在线观看视频| 国产精品色噜噜| 欧美精品v国产精品v日韩精品| 久久se精品一区二区| 国产女人aaa级久久久级| 色88888久久久久久影院野外| 一区二区三区在线免费视频| 制服丝袜国产精品| 丁香天五香天堂综合| 亚洲制服欧美中文字幕中文字幕| 欧美精品v日韩精品v韩国精品v| 国产乱码精品一区二区三区av| 国产精品激情偷乱一区二区∴| 欧美色视频在线| 豆国产96在线|亚洲| 水蜜桃久久夜色精品一区的特点| 国产丝袜欧美中文另类| 欧美日韩在线免费视频| 国产成人午夜精品5599| 无码av免费一区二区三区试看| 国产精品久久久久久户外露出| 欧美一区二区三区视频在线| 99这里只有精品| 激情综合色丁香一区二区| 亚洲精品视频观看| 久久亚洲一区二区三区四区| 欧美丝袜丝nylons| 99re这里只有精品首页| 国产一区二区三区免费| 婷婷综合五月天| 亚洲精品国产视频| 国产精品婷婷午夜在线观看| 欧美成人r级一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 国产乱色国产精品免费视频| 午夜精品一区二区三区免费视频 | 国产精品美女久久久久av爽李琼| 欧美视频精品在线观看| 91尤物视频在线观看| 国产精品18久久久久久vr| 日本不卡一区二区| 首页国产欧美久久| 亚洲精品va在线观看| 亚洲人妖av一区二区| 国产精品毛片a∨一区二区三区| 久久久99免费| 久久久.com| 久久久久久久av麻豆果冻| 欧美一级一级性生活免费录像| 欧美日韩免费不卡视频一区二区三区| 99久久免费精品| 91在线码无精品| 99精品偷自拍| 91小视频免费看| 欧美在线色视频| 欧美亚州韩日在线看免费版国语版| www.成人网.com| 色综合中文综合网| 日本女优在线视频一区二区| 日韩一区二区中文字幕| 波多野结衣亚洲一区| 日韩av高清在线观看| 香蕉加勒比综合久久| 日韩中文字幕1| 精品午夜一区二区三区在线观看| 久久精品国产**网站演员| 麻豆精品久久精品色综合| 国产在线一区二区综合免费视频| 美女诱惑一区二区| 国产suv精品一区二区6| 97久久久精品综合88久久| 色先锋资源久久综合| 欧美日韩一区二区三区免费看| 欧美福利视频一区| 欧美一区二区三区免费大片| 精品国产一区二区三区不卡 | 麻豆91精品91久久久的内涵| 老司机午夜精品99久久| 成人午夜免费av| 欧美手机在线视频| www久久精品| 一区二区三区不卡视频| 久久国产精品99精品国产| 国产精品一区二区三区网站| 97久久人人超碰| 日韩午夜电影在线观看| 国产精品久久久久久久久免费樱桃| 亚洲精品免费看| 久久69国产一区二区蜜臀| 99麻豆久久久国产精品免费| 欧美视频在线观看一区| 久久综合狠狠综合| 一卡二卡三卡日韩欧美| 国产精品1区二区.| 欧美喷潮久久久xxxxx| 国产精品久久久久久久久久免费看| 天堂久久久久va久久久久| 成人一区二区在线观看| 日韩一区二区三区电影在线观看| 国产精品久久久久久户外露出| 日韩综合在线视频| 91在线精品一区二区三区| 精品国产百合女同互慰| 午夜欧美大尺度福利影院在线看| 国产成人综合亚洲网站| 日韩欧美中文字幕一区| 亚洲精品中文在线|