<body id="all_title">
<s:form name="fm" method="post">
<div class="button_blue">
<ul>
<li class="bw_8"><a href="#" id="batchUploadButton" οnclick="uploadExcel()">意健险批量补录上传</a></li>
</ul>
</div>
</body>
<script type="text/javascript">
function uploadExcel() {
submitDlg1 = new YAHOO.widget.Panel("submitDlg1",{iframe:true, visible:true, width:400, height:250, underlay:"shadow", constraintoviewport:true, fixedcenter:true, modal:true, zIndex:320});
submitDlg1.setHeader("EXCEL导入");
submitDlg1.setBody("<iframe name='submitFrame1' src='javascript:false;' frameborder='0' style='margin:0; padding:0; width:98%; height: 95%'></iframe>");
submitDlg1.render(document.body);
submitDlg1.show();
fm.action="${ctx}/uploadExcelAction/uploadExcel.do";
fm.target="submitFrame1";
fm.submit();
}
</script>
uplaod.jsp
<body>
<tr>
<td align="center">
<a id="uploadify"></a>
</td>
<td align="center">
<a href="javascript:$('#uploadify').uploadify('upload')" class="button_ty" >导入Excel</a>
</td>
</tr>
</body>
<script language="Javascript" src="${ctx}/pages/car/check/js/checkDWR.js"></script>
<script type="text/javascript" src="${ctx}/common/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="${ctx}/pages/nonecar/regist/js/jquery.uploadify.js"></script>
<script type="text/javascript">
$(function() {
$("#uploadify").uploadify({
//指定swf文件
'swf' : '${ctx}/common/uploadify/uploadify.swf',
//后台处理的页面
'uploader' : '${ctx}/uploadServlet',
'progressData' : 'speed',
//按钮显示的文字
'buttonText' : '选择Excel',
//显示的高度和宽度,默认 height 30;width 120
'height' : 18,
'width' : 80,
//上传文件的类型 默认为所有文件 'All Files' ; '*.*'
//在浏览窗口底部的文件类型下拉菜单中显示的文本
'fileTypeDesc' : 'Excel Files',
'fileSizeLimit' :'20MB',
//允许上传的文件后缀
'fileTypeExts' : '*.xls',
// 'cancel' : 'uploadfy/uploadify-cancel.png',
//上传文件页面中,你想要用来作为文件队列的元素的id, 默认为false 自动生成, 不带#
//'queueID': 'fileQueue',
//选择文件后自动上传
'auto' : false,
//设置为true将允许多文件上传
'multi' : false,
'overrideEvents' : [ 'onDialogClose', 'onUploadSuccess', 'onUploadError', 'onSelectError' ],
'onSelect' : uploadify_onSelect,
//onchange
'onSelectError' : uploadify_onSelectError,
// 运行错误
'onUploadError' : uploadify_onUploadError,
'onUploadSuccess' : uploadify_onUploadSuccess
});
});
//重写回调函数展示返回信息
var uploadify_onUploadSuccess = function(file, data, response) {
$('#' + file.id).find('.data').html(data);
};
var uploadify_onSelectError = function(file, errorCode, errorMsg) {
alert("DDD");
var msgText = "上传失败\n";
switch (errorCode) {
case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
//this.queueData.errorMsg = "每次最多上传 " + this.settings.queueSizeLimit + "个文件";
msgText += "每次最多上传 " + this.settings.queueSizeLimit + "个文件";
break;
case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
msgText += "文件大小超过限制(" + this.settings.fileSizeLimit + ")";
break;
case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
msgText += "文件大小为0";
break;
case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
msgText += "文件格式不正确,仅限 " + this.settings.fileTypeExts;
break;
default:
msgText += "错误代码:" + errorCode + "\n" + errorMsg;
}
alert(msgText);
};
var uploadify_onUploadError = function(file, errorCode, errorMsg, errorString) {
// 手工取消不弹出提示
if (errorCode == SWFUpload.UPLOAD_ERROR.FILE_CANCELLED
|| errorCode == SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED) {
return;
}
var msgText = "部分补录成功,失败数据请下载补录失败原因查看!";
/* switch (errorCode) {
case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
msgText += "HTTP 错误\n" + errorMsg;
break;
case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
msgText += "上传文件丢失,请重新上传";
break;
case SWFUpload.UPLOAD_ERROR.IO_ERROR:
msgText += "IO错误";
break;
case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
msgText += "安全性错误\n" + errorMsg;
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
msgText += "每次最多上传 " + this.settings.uploadLimit + "个";
break;
case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
msgText += errorMsg;
break;
case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
msgText += "找不到指定文件,请重新操作";
break;
case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
msgText += "参数错误";
break;
default:
msgText += "文件:" + file.name + "\n错误码:" + errorCode + "\n"
+ errorMsg + "\n" + errorString;
} */
alert(msgText);
}
var uploadify_onSelect = function(file){
};
</script>
UploadServlet
/**
* uploadify上传Servlet.
* 上传excel读取并保存数据库.
* @author
*/
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private Logger logger = Logger.getLogger(UploadServlet.class);
private FileInputStream excelFileInputStream = null;
private HSSFWorkbook workbook;
private CommonBatchImportService commonBatchImportService;
private String errorInfo = "";
/**
* 初始化时将所有记录都还原为默认值
*/
public void init() throws ServletException {
commonBatchImportService = (CommonBatchImportService) ServiceFactory.getService(this.getServletContext(),"commonBatchImportService");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doGet(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String savePath = this.getServletConfig().getServletContext().getRealPath("");
savePath = savePath + "\\uploads\\";
File f1 = new File(savePath);
if (!f1.exists()) {
f1.mkdirs();
}
DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setHeaderEncoding("utf-8");
List fileList = null;
try {
fileList = upload.parseRequest(req);
} catch (FileUploadException ex) {
ex.printStackTrace();
errorInfo = ex.getMessage();
return;
}
Iterator<FileItem> it = fileList.iterator();
String name = "";
String extName = "";
while (it.hasNext()) {
FileItem item = it.next();
if (!item.isFormField()) {
name = item.getName();
long size = item.getSize();
String type = item.getContentType();
if (name == null || name.trim().equals("")) {
continue;
}
// 扩展名格式:
if (name.lastIndexOf(".") >= 0) {
extName = name.substring(name.lastIndexOf("."));
}
File saveFile = new File(savePath + name + extName);
try {
item.write(saveFile);
} catch (Exception e) {
e.printStackTrace();
errorInfo = e.getMessage();
}
/*try {
excelFileInputStream = new FileInputStream(saveFile);
workbook = new HSSFWorkbook(excelFileInputStream);
excelFileInputStream.close();
List<PJ_ComponentInfo> componentInfos = componentService.readCompenentInfo(workbook);
componentService.saveComponentInfo(componentInfos);
} catch (Exception e) {
e.printStackTrace();
errorInfo = e.getMessage();
}*/
}
}
if("".equals(errorInfo)){
errorInfo = "导入成功!";
}
//设置字符集
resp.setCharacterEncoding("utf-8");
resp.getWriter().print( errorInfo);
logger.info(errorInfo);
}
public Logger getLogger() {
return logger;
}
public void setLogger(Logger logger) {
this.logger = logger;
}
public FileInputStream getExcelFileInputStream() {
return excelFileInputStream;
}
public void setExcelFileInputStream(FileInputStream excelFileInputStream) {
this.excelFileInputStream = excelFileInputStream;
}
public HSSFWorkbook getWorkbook() {
return workbook;
}
public void setWorkbook(HSSFWorkbook workbook) {
this.workbook = workbook;
}
public String getErrorInfo() {
return errorInfo;
}
public void setErrorInfo(String errorInfo) {
this.errorInfo = errorInfo;
}
public CommonBatchImportService getCommonBatchImportService() {
return commonBatchImportService;
}
public void setCommonBatchImportService(
CommonBatchImportService commonBatchImportService) {
this.commonBatchImportService = commonBatchImportService;
}
}