1、html部分

<form enctype="multipart/form-data">
  <label>请选择文件</label> <input id="file" class="file" type="file">
</form>

2、js部分

$("#file").fileinput({
uploadUrl: Config.Java_Manage_Path+'black/uploadBlack',
allowedFileExtensions: ['xls', 'xlsx'],
dropZoneEnabled: false,
browseLabel:"选择",
showRemove: false,
showUpload: false,
uploadLabel: "提交",
showCancel: false,
maxFileSize: 6000,
msgSizeTooLarge: '"{name}" ({size} KB) 不得超过 {maxSize} KB. 请重新选择文件',
fileActionSettings: {
showZoom: false,//不显示预览按钮
uploadTitle: "上传",
removeTitle: "删除"
},
progressUploadThreshold: "导入中,请稍后...",
msgInvalidFileExtension: '仅支持 "{extensions}" 类型的文件.'
});
//点击上传后隐藏关闭按钮
$('#file').on('filepreupload', function(event, data, previewId, index) {
// var form = data.form, files = data.files, extra = data.extra,
// response = data.response, reader = data.reader;
// console.log('File pre upload triggered');
$("#close").hide();
});
//上传完毕显示关闭按钮
$('#file').on('fileuploaded', function(event, data, previewId, index) {
/*var form = data.form, files = data.files, extra = data.extra,
response = data.response, reader = data.reader;
console.log('File uploaded triggered');*/
var response = data.response;
if(response.result == "ok"){
$.messager.popup("导入成功");
}else{
$.messager.popup("服务器可能出错了,请稍候再试");
}
$("#close").show();
$("#upload").modal("hide");
doSearch();
});

3、controller部分

 //创建一个通用的多部分解析器
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(req.getSession().getServletContext());
//判断 request 是否有文件上传,即多部分请求
if(multipartResolver.isMultipart(req)){
//转换成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) req;
// 取得request中的所有文件名
Iterator<String> iter = multiRequest.getFileNames();
if(iter.hasNext()) {
// 取得上传文件
MultipartFile file = multiRequest.getFile(iter.next());
String fileName = file.getOriginalFilename(); if (!fileName.endsWith(".xls") && !fileName.endsWith(".xlsx")) {
this.response(req, res, false);
}
String newName = DateUtil.dateToStringT(new Date()) + fileName;
File targetFile = new File(upload_path, newName);
// 保存
// try {
// file.transferTo(targetFile);
// } catch (Exception e) {
// e.printStackTrace();
// this.response(req, res, false,ResultCode.getMessage(ResultCode.EXCEPTION));
// }
FileOutputStream os = null;
InputStream in = null;
// 保存
try {
os = new FileOutputStream(upload_path+"/"+newName);
//拿到上传文件的输入流
in = file.getInputStream();
//以写字节的方式写文件
int b = 0;
while((b=in.read()) != -1){
os.write(b);
} } catch (Exception e) {
e.printStackTrace();
this.response(req, res,false,
ResultCode.getMessage(ResultCode.EXCEPTION));
}finally{
os.flush();
os.close();
in.close();
}
// 读取excel
ExcelImportUtil excelUtil = new ExcelImportUtil();
excelUtil.setExcelPath(targetFile.getPath());
excelUtil.setStartReadPos(1);
List<Row> rowList = excelUtil.readExcel(); if (!(rowList != null && rowList.size() > 0)) {
this.response(req, res, false,
ResultCode.getMessage(ResultCode.FILE_READ_ERROR));
}
              //读取文件内容添加到数据库
Map<String, Object> map = blacklistservice.addBlackList( excelUtil, rowList);
if (map != null) {
this.response(req, res, JsonUtil.toJson(map));
} else {
this.response(req, res, false,
ResultCode.getMessage(ResultCode.EXCEPTION)); }
}
} }

  

java zyUpload 实现多文件上传的更多相关文章

  1. JAVA Web 之 struts2文件上传下载演示(二)(转)

    JAVA Web 之 struts2文件上传下载演示(二) 一.文件上传演示 详细查看本人的另一篇博客 http://titanseason.iteye.com/blog/1489397 二.文件下载 ...

  2. JAVA Web 之 struts2文件上传下载演示(一)(转)

    JAVA Web 之 struts2文件上传下载演示(一) 一.文件上传演示 1.需要的jar包 大多数的jar包都是struts里面的,大家把jar包直接复制到WebContent/WEB-INF/ ...

  3. Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题 swfUpload多文件上传

    Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题(转) 我们都知道普通的文件上传是通过表单进行文件上传的,还不能达到异步上传的目的.通过使用某些技术手段,比如jqu ...

  4. zyUpload+struct2完成文件上传

    前言: 最近在写自己的博客网站,算是强化一下自己对s2sh框架的理解.期间遇到了很多问题,这些问题在写之前都考虑过,感觉也就是那样吧.但正真遇到了,也挺让人难受的.就利用zyUpload这个js插件实 ...

  5. selenium+java利用AutoIT实现文件上传

    转自https://www.cnblogs.com/yunman/p/7112882.html?utm_source=itdadao&utm_medium=referral 1.AutoIT介 ...

  6. java常见3种文件上传速度对比和文件上传方法详细代码

    在java里面文件上传的方式很多,最简单的依然是FileInputStream.FileOutputStream了,在这里我列举3种常见的文件上传方法代码,并比较他们的上传速度(由于代码是在本地测试, ...

  7. Java精选笔记_文件上传与下载

    文件上传与下载 如何实现文件上传 在Web应用中,由于大多数文件的上传都是通过表单的形式提交给服务器的,因此,要想在程序中实现文件上传的功能,首先得创建一个用于提交上传文件的表单页面. 为了使Serv ...

  8. java使用commons-fileupload进行文件上传

    java中使用文件上传时需要使用特定的类库,这里使用commons-files类库进行文件上传,在http://commons.apache.org/proper/commons-fileupload ...

  9. 【Java】后台将文件上传至远程服务器

    问题:由于系统在局域网(能访问外网)内,但外网无法请求局域网内服务器文件和进行处理文件. 解决:建立文件服务器,用于存储文件及外网调用. 客户端(文件上传): package cn.hkwl.lm.u ...

随机推荐

  1. ZBrush与同类数字雕刻软件的比较

    随着数字雕刻软件的迅猛发展,不但在软件的数量和功能上有突飞猛进的提高,行业应用上也有很大的拓展.那么,与同类数字雕刻软件比较下,用户应该如何选择呢?下面我们来对这些软件做一个简单的罗列分析. 目前数字 ...

  2. 注解实战@Test标签

    1.创建一个Maven工程 2.点击java,右键-新建一个类 package com.course.testng; import org.testng.annotations.Test; publi ...

  3. ansible 工作原理以及使用详解

    内容:1.ansible的作用以及工作结构2.ansible的安装以及使用3.ansible的playbook使用 一.ansible的作用以及工作结构        1.ansible简介:     ...

  4. 论文阅读《ActiveStereoNet:End-to-End Self-Supervised Learning for Active Stereo Systems》

    本文出自谷歌与普林斯顿大学研究人员之手并发表于计算机视觉顶会ECCV2018.本文首次提出了应用于主动双目立体视觉的深度学习解决方案,并引入了一种新的重构误差,采用自监督的方法来解决缺少ground ...

  5. 洛谷P5238 整数校验器

    看到没有边读入边处理的,我来水一发 我们要看一下有那些情况是格式不合法的 单独的负号 -0(后面可以有其他数字) 0 +(后面一些数字) 我们用快速读入的方法 读取字符进行处理 还有可能超出范围的 考 ...

  6. JS冒泡排序方法

  7. Bridge桥接模式(设计模式11)

    在没有使用桥接模式: 扩展新问题(类归属膨胀问题) 1增加性的电脑类型,要增加每个品牌下面的类 2如果要增加一个新的电脑品牌,要增加美中电脑类型的类 违背单一职责原则: · 一个类:联想笔记本,有两个 ...

  8. 【转】 C# ListView实例:文件图标显示

    [转] C# ListView实例:文件图标显示 说明:本例将目录中的文件显示在窗体的ListView控件中,并定义了多种视图浏览.通过调用Win32库函数实现图标数据的提取. 主程序: 大图标: 列 ...

  9. n个骰子,和为x的概率分别是多少

    开始我居然又没有想出来.. 还是看了解法.开始的时候,一直想的是用概率,百分比来求,后来才发现,用次数来求,最后除一下,更近清晰. 方法,可以是递归,每次多一个骰子的时候,次数分别加上个数以及上一次i ...

  10. 上机题目(0基础)-计算两个正整数的最大公约数和最小公倍数(Java)

    题目例如以下: