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. Bzoj 2502: 清理雪道 有上下界网络流_最小流

    好长时间没有写网络流了,感觉好手生.对于本题,设一个源点 $s$ 和 $t$.1.由 $s$ 向每个点连一条没有下界,容量为无限大的边,表示以该点为起点.2.由每个点向 $t$ 连一条没有下界,容量为 ...

  2. 洛谷4623 [COCI2012-2013#6] BUREK

    题目描述 给定N个三角形,和M条直线,直线要么平行于X轴,要么平行于Y轴,问这M条直线 分别经过多少个三角形内部 (注意是内部即分开的两个多边形的面积均大于零). 输入输出格式 输入格式: 第一行一个 ...

  3. BZOJ 1016 最小生成树计数(矩阵树定理)

    我们把边从小到大排序,然后依次插入一种权值的边,然后把每一个联通块合并. 然后当一次插入的边不止一条时做矩阵树定理就行了.算出有多少种生成树就行了. 剩下的交给乘法原理. 实现一不小心就会让程序变得很 ...

  4. ansible组件 Ad-Hoc

    ad hoc ---临时的,在ansible里需要快速执行,并不用保存命令的执行方式 简单命令 playbook 复杂命令     EXAMPLES: - name: install the late ...

  5. spring mvc 下载的时候中文文件名不显示

    Headers.add("Content-Disposition", "attachment;filename=" + new String(file.getB ...

  6. 洛谷 P1338 末日的传说 (字典序 + 逆序对)

    这道题需要对排列有深刻的理解和认识 给出逆序对的个数,求改逆序对个数的字典序最小的排列 那么既然是最小,那么一开始一段肯定是升序,一直到某个数后才开始改变 即1 2 3-- n-1 n a b c d ...

  7. git pull 跟 fetch的区别

    今天在公司碰到个问题,公司不使用master分支作为主分支,而使用release分支作为主分支,这就碰到了个问题,也就是当clone一个项目下来的时候,如果master跟release分支有冲突,就不 ...

  8. ASP.NET-Microsoft.Management.Infrastructure错误

    错误如图所示,将MVC发布到IIS上就会出现这个错误,我用到了NPOI这个EXCEL插件,不知道是不是这个造成的,但是实在找不到解决方案,就直接将BIN目录下的这个Microsoft.Manageme ...

  9. POJ——T2186 Popular Cows || 洛谷——P2341 [HAOI2006]受欢迎的牛

    http://poj.org/problem?id=2186 || https://www.luogu.org/problem/show?pid=2341 Time Limit: 2000MS   M ...

  10. Windows环境下教你用Eclipse ADT 插件生成.h/.so文件,Java下调用JNI,轻松学习JNI

    准备工作:Eclipse ADT IDE 开发工具,NDK .Java 环境,博主的配置是:Windows x86 , ADT Build: v22.3.0-887826 , JAVA 1.7, ND ...