婷婷综合国产,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
    亚洲h动漫在线| 韩国v欧美v日本v亚洲v| 亚洲色图制服诱惑 | 一本久道中文字幕精品亚洲嫩| 精品无人码麻豆乱码1区2区 | 久久久国产午夜精品| 99国产欧美久久久精品| 日韩精品一区二区三区视频播放| 欧美午夜精品免费| 国产成人精品免费网站| 国产综合色精品一区二区三区| 欧美大胆一级视频| 久久久久久久久久久久电影| 国产欧美精品一区二区色综合| 久久精品亚洲乱码伦伦中文| 中文字幕的久久| 亚洲一区二区精品视频| 国产亚洲欧美在线| 成人免费视频视频| 亚洲高清免费在线| 亚洲一区二区三区免费视频| 中日韩av电影| 国产精品嫩草99a| 亚洲无线码一区二区三区| 一区二区三区**美女毛片| 国产一区二区在线免费观看| 99久久精品免费| 久久久久久久久蜜桃| 亚洲婷婷在线视频| 国产日产欧美一区二区视频| 日韩三级精品电影久久久| 久久综合九色综合97婷婷| www.爱久久.com| 欧美日韩亚洲综合| 欧美午夜精品电影| 69堂成人精品免费视频| 久久久精品tv| 久久er99热精品一区二区| 亚洲在线视频网站| www.日韩在线| 日韩一区二区视频在线观看| 久久久99精品久久| 亚洲精品一线二线三线| 精品久久久久久最新网址| 国产人成亚洲第一网站在线播放| 亚洲欧洲精品一区二区三区| 日韩一区二区三区视频在线观看| 久久精品国产999大香线蕉| 国产一区福利在线| 麻豆视频一区二区| 热久久国产精品| 国产亚洲精品久| 欧美美女黄视频| 亚洲国产视频一区二区| 日韩欧美不卡在线观看视频| 日韩欧美成人激情| 国产真实乱偷精品视频免| 成人av免费观看| 国产麻豆一精品一av一免费| 激情都市一区二区| 久久久久久一级片| 亚洲一区二区三区精品在线| 亚洲h在线观看| 国产精品久久免费看| 国产精品三级av| 成人蜜臀av电影| 欧美精品在线观看一区二区| 久久综合五月天婷婷伊人| 精品国产一区a| av一区二区三区黑人| 日韩欧美在线观看一区二区三区| 国产成人免费视频一区| 一区二区三区中文字幕| 欧美精品日韩综合在线| 欧美精品一二三| 日韩精品电影一区亚洲| 亚洲免费伊人电影| 亚洲一区二区视频| 免费在线一区观看| 精品欧美一区二区久久| 欧美va亚洲va香蕉在线 | 色一情一伦一子一伦一区| 91久久精品日日躁夜夜躁欧美| 美国三级日本三级久久99| 成人黄色av网站在线| 91麻豆免费视频| 精品一区二区三区在线播放视频| 综合久久一区二区三区| 国产自产2019最新不卡| 亚洲综合一区在线| 国产精品一区二区黑丝| 亚洲超碰精品一区二区| 青青草成人在线观看| 中文在线一区二区| 一区二区三区精品| 激情国产一区二区| 青青草国产精品97视觉盛宴| 粉嫩绯色av一区二区在线观看| 99re66热这里只有精品3直播 | 日精品一区二区| 这里只有精品视频在线观看| 国产麻豆精品在线| 欧美在线短视频| 91精品国产欧美日韩| 久久久久久久综合日本| 色哟哟一区二区在线观看| 在线成人高清不卡| 不卡一区二区中文字幕| 国产欧美一区二区精品婷婷| 欧美成人乱码一区二区三区| 欧美午夜一区二区三区免费大片| 亚洲一区二区视频| 日本不卡一区二区| 另类小说视频一区二区| 91蝌蚪porny| 国产精品萝li| 捆绑紧缚一区二区三区视频| 日韩一二三区不卡| 欧美一区二区三区成人| 欧美巨大另类极品videosbest | 欧美激情中文不卡| jiyouzz国产精品久久| 亚洲人成网站影音先锋播放| 欧美一区二区三区免费视频| 欧美日韩一区二区三区高清| 在线看国产日韩| 欧美a级一区二区| 久久毛片高清国产| 成人免费看视频| 91精品国产综合久久精品麻豆 | 中文字幕国产一区二区| 欧美美女黄视频| 高清在线成人网| 日韩欧美色电影| 天天综合色天天综合| 一区二区在线看| 欧美一区二区在线视频| 色狠狠一区二区| 久久亚洲精华国产精华液| 欧美一区二区三区视频在线| 91影视在线播放| 香蕉久久一区二区不卡无毒影院| 一区二区三区欧美激情| 蜜桃视频一区二区三区| 亚洲精品国久久99热| 美国十次综合导航| 国产精品剧情在线亚洲| 久久精品一区二区三区四区| 99久久免费视频.com| 91视频免费播放| 日韩成人午夜精品| 欧美三级蜜桃2在线观看| 极品美女销魂一区二区三区免费| 国产精品美女久久久久aⅴ国产馆| 亚洲一区二区三区在线| 欧美精品在线一区二区三区| 欧美高清在线一区二区| 一区二区三区在线播放| 9191精品国产综合久久久久久| 欧美日韩高清影院| 国产精品一区二区你懂的| www.久久久久久久久| 91麻豆国产香蕉久久精品| 国产 欧美在线| 亚洲第一电影网| 日韩中文字幕麻豆| 国产资源精品在线观看| 国产高清视频一区| 高清不卡一区二区| 欧美电影一区二区| 一区二区三区产品免费精品久久75| 国产农村妇女精品| 一区二区欧美国产| 色综合一个色综合亚洲| 国产精品久久久久三级| 97se狠狠狠综合亚洲狠狠| 一区二区在线观看免费视频播放| 精品入口麻豆88视频| 国产精品网曝门| 一本到一区二区三区| 99国产精品视频免费观看| 久久精品日产第一区二区三区高清版| 91在线视频免费观看| 亚洲123区在线观看| 4438x亚洲最大成人网| 亚洲成av人片在线| 久久久国产精华| 亚洲曰韩产成在线| 亚洲成人www| 日韩精品一二三区| 狠狠色丁香久久婷婷综| 不卡视频一二三| 91精品国产高清一区二区三区蜜臀| 欧美日韩情趣电影| 26uuu精品一区二区三区四区在线| 美腿丝袜一区二区三区| 国产丝袜美腿一区二区三区| 91亚洲国产成人精品一区二区三| 在线成人免费观看| 中文字幕一区在线|