springMVC结合AjaxForm上传文件

网友投稿 165 2023-07-11


springMVC结合AjaxForm上传文件

最近在项目中需要上传文件文件,之前一直都是form提交的,尝试了一下AjaxForm,感觉还比较好用,写篇随笔mark下,供以后使用。

准备工作:

下载jquery-form.js

相关jar:

commons-fileupload-1.1.1.jar

commons-io-1.3.2.jar

在spring-servlet.xml进行multipartResolver配置:

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

这个是必须的,否则不好用。

页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8" session="false" %>

*

取消

核心js:

var msg;

$(function(){

nui.parse();

//ajax配置

var options = {

url: contextPath+"/webapp/cfProjectType/importExcel",

beforeSubmit: showRequest, //提交前处理

success: showResponse, //处理完成

resetForm: true,

dataType: 'json'

};

$('#fileUpload').submit(function() { //注意

$(this).ajaxSubmit(options);

return false;//防止dialog 自动关闭

});

})

//执行成功回调函数

function showResponse(e) {

nui.hideMessageBox(msg);

if (e.importFlag == true) {

CloseWindow("ok");

} else {

//对错误的一些处理

}

}

//提交前的一些校验

function showRequest(formData, jqForm, options){

if(formData[0].value=="" || formData[0].value==null){

nui.alert("请选择文件");

return false;

}

var fileName = $("#uploadFile").val().split("\\").pop();

var strs = new Array(); //定义一数组

strs = fileName.split('.');

var suffix = strs [strs .length - 1];

if (suffix != 'xls' && suffix != 'xlsx') {

nui.alert("请选择excel文件!");

return false;

}

msg = nui.loading("Loading", "Please waiting");

}

java代码:

@SuppressWarnings("unchecked")

@RequestMapping("/webapp/cfProjectType/importExcel")

@ResponseBody

public Map importExcel(@RequestParam("file") MultipartFile[] files, HttpServletRequest request)

throws Throwable {

//long starttiem = System.currentTimeMillis();

InputStream fis;

fis = null;

File fileIn = null;

try {

for (MultipartFile myfile : files) {

if (!myfile.isEmpty()) {

String realPath = request.getSession().getServletContext().getRealPath("/export");

fileIn = new File(realPath);

//判断上传文件的保存目录是否存在

if (!fileIn.exists() && !fileIn.isDirectory()) {

//创建目录

fileIn.mkdirs(路径);

}

//将上传的文件复制到文件夹下

myfile.transferTo(new File(路径+文件名));

}

}

}

这里我之前用过另外一个方法FileUtils.copyInputStreamToFile(InputStream arg0, File arg1)同样能将文件保存到路径下面

更多精彩内容请参考专题《ajax上传技术汇总》,《javascript文件上传操作汇总》和《jQuery上传操作汇总》进行学习。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:全面理解闭包机制
下一篇:详解Java多线程编程中LockSupport类的线程阻塞用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~