struts+uploadify上传文件

 <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;
	}

	
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值