麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

artDialog+plupload實現多文件上傳

2019-11-20 09:26:55
字體:
來源:轉載
供稿:網友

Plupload簡介

Plupload是有TinyMCE的開發者開發的,為您的內容管理系統或是類似上傳程序提供一個高度可用的上傳插件。Plupload 目前分為一個核心API 和一個jQuery上傳隊列部件,這樣使你可以直接使用或是自己定制。

一、效果展示

包括文件上傳面板以及文件上傳列表

二、介紹

長話短說,采用spring springMVC mybatis maven mysql,實現多文件上傳功能,下載使用的是流的形式。

其中涉及的分頁我會另開一片博客介紹。

三、準備材料

plupload

artDialog

還有一份初始化插件的js文件

這些可以直接從我的分享連接里面下載

鏈接:http://pan.baidu.com/s/1c27cTAK 密碼:btqj

還有jquery 這個自行下載

四、前臺代碼

引入樣式以及js文件

<link rel="stylesheet" href="resources/css/plupload.css" type="text/css"><script src="resources/js/jquery.min.js"></script><script src="resources/upload/plupload.full.min.js"></script><script src="resources/artDialog4.1.7/artDialog.source.js?skin=blue"></script><script src="resources/js/upload.js"></script>

js代碼

  _plupload(綁定的uuid,文件上傳路徑);①關于綁定的uuid,我舉個例子,當前用戶的id就是uuid,你可以把用戶id和你上傳的文件相關聯,以后查詢的話根據用戶id就能查詢這個用戶上傳的所有文件②這個方法是封裝過的,在upload.js里面能看到,我里面注釋寫的很清楚,也可以參考官方文檔

$(function() {  3   $('#uploadBtn').click(function() {   popUpDialog();  });  _plupload('test','${pageContext.request.contextPath}/uploadfile'); });

頁面代碼,一個按鈕,一個彈出框

<a id="uploadBtn" class="optionbtn inline" href="#">文件上傳</a> <!-- 觸發彈出框 --> <div id="uploadContent" style="display: none; height: 300px; overflow-x: hidden; overflow-y: auto;">  <div id="choosefile">   <span>單個文件支持小于100M</span><br /> <a id="uploadify" href="javascript:void(0);">選擇文件</a>  </div>  <div id="uploadfileQueue" style="border: 1px solid #a7c5e2; height: 228px; width: 350px;"></div> </div> <pre id="console"></pre>

五、后臺代碼

我都沒有封裝成方法,為了看得明白,可以自己封裝一下

/**  * 文件上傳請求地址  *   * @param request  * @param response  */ @RequestMapping("uploadfile") public void upload(HttpServletRequest request, HttpServletResponse response) {  MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;// 二進制上傳  CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file");// 獲取文件  String unid = UUID.randomUUID().toString().replace("-", "");/* 文件主鍵 */  String originalFilename = file.getOriginalFilename();/* 原文件名,包括后綴 */  String flieSize = String.valueOf(file.getSize());/* 文件大小 */  String path = null;/* 文件存儲路徑 */  String punid = request.getParameter("punid"); /* 關聯文件punid */  // 保存文件  if (file != null) {   try {    String basePath = request.getSession().getServletContext().getRealPath("/uploadfile");    SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/");    String subPath = sdf.format(new Date());    path = basePath + subPath + unid + File.separator + originalFilename;    // 如果文件夾不存在,就創建文件夾    File dir = new File(path);    if (!dir.exists()) {     dir.mkdirs();    }    file.transferTo(dir);   } catch (Exception e) {    e.printStackTrace();   }  }  // 文件大小轉換  long kb = 1024;  long mb = kb * 1024;  long gb = mb * 1024;  long size = Long.parseLong(flieSize);  if (size >= gb) {   flieSize = String.format("%.1f GB", (float) size / gb);  } else if (size >= mb) {   float f = (float) size / mb;   flieSize = String.format(f > 100 ? "%.0f MB" : "%.1f MB", f);  } else if (size >= kb) {   float f = (float) size / kb;   flieSize = String.format(f > 100 ? "%.0f KB" : "%.1f KB", f);  } else {   flieSize = String.format("%d B", size);  }  // 存儲文件信息進數據庫  FileUpload fileUpload = new FileUpload();  fileUpload.setUnid(unid);  fileUpload.setOriginalFilename(originalFilename);  fileUpload.setFlieSize(flieSize);  fileUpload.setPath(path);  fileUpload.setPunid(punid);  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  fileUpload.setFlieTime(df.format(new Date()));  fileUploadService.insert(fileUpload); }

 這里附帶一個下載的方法,是用文件流,根據文件id來進行下載

@RequestMapping("downloadfile") public void downLoadfile(HttpServletRequest request, HttpServletResponse response) {  String unid = request.getParameter("unid");  FileUpload fileUpload = fileUploadService.selectByPrimaryKey(unid);  if (fileUpload != null) {   try {    String filename = new String(fileUpload.getOriginalFilename().getBytes("GBK"), "ISO-8859-1");    String path = fileUpload.getPath();    response.setCharacterEncoding("utf-8");    response.setContentType("application/octet-stream");    response.setHeader("Content-Disposition", "attachment;fileName=" + filename);    response.setHeader("Content-Length", fileUpload.getFlieSize());     InputStream inputStream = new FileInputStream(new     File(path));     OutputStream os = response.getOutputStream();     byte[] b = new byte[2048];     int length;     while ((length = inputStream.read(b)) > 0) {     os.write(b, 0, length);     }     os.close();     inputStream.close();   } catch (FileNotFoundException e) {    e.printStackTrace();   } catch (IOException e) {    e.printStackTrace();   }  } }

還有一個刪除方法

/**  * 文件刪除  *   * @param request  * @param response  */ @ResponseBody @RequestMapping("delfile") public Map<String, Object> delfile(HttpServletRequest request, HttpServletResponse response) {  String unid = request.getParameter("unid");  FileUpload fileUpload = fileUploadService.selectByPrimaryKey(unid);  // 刪除本地  boolean flag = false;  File file = new File(fileUpload.getPath());  if (file.exists()) {// 路徑為文件且不為空則進行刪除   flag = file.delete();  }  // 刪除數據庫  int result = fileUploadService.deleteByPrimaryKey(unid);  if (result > 0) {   flag = true;  }  Map<String, Object> map = new HashMap<String, Object>();  map.put("result", flag);  return map; }

以上所述是小編給大家介紹的artDialog+plupload實現多文件上傳,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天天草天天爱 | 一本色道久久99精品综合蜜臀 | 成年性羞羞视频免费观看 | 91久久久久久久 | 久草在线播放视频 | 国产毛片自拍 | 欧美天堂一区 | 伊人在线视频 | 综合国产在线 | 国产一级小视频 | 精品亚洲视频在线观看 | 欧美一级电影网 | 羞羞草视频 | 欧美性生活网站 | 国产精品久久久久久久午夜片 | 精品国产91久久久久久 | 在线成人免费观看 | 日韩av电影在线观看 | 国产精品毛片无码 | 日韩精品久久久久久久电影99爱 | 中文在线观看视频 | 天堂成人一区二区三区 | 国产毛片在线 | 中文字幕在线观看网址 | 午夜爽爽爽男女免费观看hd | 操碰97 | 一级片999| 日韩黄色片免费看 | 成人勉费视频 | 91重口视频 | 黄网站在线播放视频免费观看 | 免费毛片电影 | 毛片大全 | 久久99精品久久久久久久久久久久 | 高清在线观看av | 国产午夜精品久久久久婷 | 国产午夜免费视频 | 久久一本日日摸夜夜添 | 日韩电影一区二区三区 | 成人午夜小视频 | 国产jjizz一区二区三区视频 |