用ajaxfileupload插件上传文件

html内容:

<input type="file" id="file" name="file_name"	value="选择文件" size="80">

用ajax异步上传文件,代码如下:

var param = {
			"code" :  "123456",
			"code_name" : "test"
		};

$.ajaxFileUpload({
			url : action_url, // 发送并处理的servlte
			secureuri : false,
			fileElementId : 'file', // 文件选择框的id属性
			data : param,	//入参,表单格式
			type : "post",	//post请求
			dataType : "json",	//数据格式
			success : function(data, status) {				
				if (data.status == '1') {
					alert("操作成功!");
				} else {
					alert("操作失败," + data.message + "。");
				}
			},
			error : function(data, status, e) {
				if (data.status == "0") {
					if (data.message != null && data.message != "") {
						alert(data.message);
					} else {
						alert("后台代码异常。");
					}
				}
			}
		});
在servlet中获取文件内容时

DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
fileUpload.setHeaderEncoding("UTF-8");// 设置文件上传编码格式
OutputStream outputStream = null;
InputStream inputStream = null;
List items = fileUpload.parseRequest(request);//获取上传文件并解析成 list
String code = "";
String code_name = "";
for (Iterator iterator = items.iterator(); iterator.hasNext();) {//遍历请求内容
	FileItem name = (FileItem) iterator.next();
	if (name.isFormField()) {//判断是否是普通的表单类型
		if("code".equals(name.getFieldName())){
			code = name.getString("UTF-8");
		}
		if("code_name".equals(name.getFieldName())){
			code_name = name.getString("UTF-8");
		}
	}else{
		String fileName = name.getName();
		String lastFileName = request.getRealPath("/") + "导入模板"
				+ fileName.substring(fileName.lastIndexOf("."));
		outputStream = new FileOutputStream(new File(lastFileName));
		inputStream = name.getInputStream();
		byte[] bs = new byte[1024];
		while (null != inputStream && (inputStream.read(bs)) != -1) {
			outputStream.write(bs);
		}
		InputStream ins = new FileInputStream(new File(lastFileName));
		if (!ins.markSupported()) {
			ins = new PushbackInputStream(ins, 8);
		}
		Workbook workBook = null;
		if (POIFSFileSystem.hasPOIFSHeader(ins)) {
			workBook = new HSSFWorkbook(ins);
		} else if (POIXMLDocument.hasOOXMLHeader(ins)) {
			workBook = new XSSFWorkbook(OPCPackage.open(ins));
		}
		Sheet st = workBook.getSheetAt(0);
		total = st.getLastRowNum();
		……//取文件内容就省略了
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值