ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

通过 $.ajaxFileUpload 实现struts的异步上传功能

2021-12-30 17:30:00  阅读:179  来源: 互联网

标签:异步 sheet ajaxFileUpload struts upload fileName return null data


最近在struts项目开发中遇到一个上传问题,发现struts对MultipartFile的不友好性,特找到了DiskFileItemFactory和ServletFileUpload替换方法,具体开发代码如下:

jsp代码

 function uploadExcel(){
            $.ajaxFileUpload({
                url : '${pageContext.request.contextPath}/fileUpload.do',
                secureuri : false,
                fileElementId : 'upload',// file标签的id
                dataType : 'text',// 返回数据的类型
                type : 'POST',
                success : function(data, status) {   
                    console.log(data); 
                    //对返回过来的数据作处理
                    /* var result = data.toString().substr(5, data.length - 11);
                    var json = $.parseJSON(result);
                    if (!json.result) {
                        alertErrorAtBottomRight(json.errorMsg);
                    } else {
                        var data = json.data;
                        alertSuccessAtBottomRight("文件导入成功,"+data);      
                        //上传成功后,对文本框的数据清空
                        resetForm('add_acct_export');
                        //上传成功后,对弹出框作隐藏处理
                        $("#export-account").modal("hide");
                    } */
                    var isIE = navigator.userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1;
                    if(isIE) {    // 此处判断是否是IE
                        $('#upload').replaceWith($('#upload').clone(true));
                    } else {
                        $('#upload').val('');
                    }
                },
                error : function(data, status, e) {
                    alertErrorAtBottomRight(e);
                }
            });

Control  层代码

 public ActionForward fileUpload(ActionMapping mapping, ActionForm form, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        
        DiskFileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setHeaderEncoding("UTF-8");
        if (!ServletFileUpload.isMultipartContent(request)) {
            return null;
        }
        try {
            List<FileItem> list = upload.parseRequest(request);
            for (FileItem item : list) {
                if (item.isFormField()) {
                    log.info("fileUpload format is error");
                }else{
                    String fileName = item.getName();
                    if (fileName != null && fileName.indexOf(".xls") < 0) {
                        return null;
                    }
                    if (fileName==null||fileName.trim().equals("")) {
                        continue;
                    }
//                    items.add(item);
                    InputStream is = item.getInputStream();
                    Workbook wb = Workbook.getWorkbook(is);
                    int sheet_size = wb.getNumberOfSheets();
                    for (int index = 0; index < sheet_size; index++) {
                        Sheet sheet = wb.getSheet(index);
                        if(sheet.getRows()<=1) {
                            return null;
                        }
                        for (int i = 1; i < sheet.getRows(); i++) {
                            String orderNo = null;
                            List<String> innerList=new ArrayList<String>();
                            for (int j = 0; j < sheet.getColumns(); j++) {
                                innerList.add(sheet.getCell(j, i).getContents());
                                if(j==3) {
                                    orderNo=sheet.getCell(j, i).getContents();
                                }
                            }
                            Map oldeOrder = null;
                            String objectId = null;
                            Map<String, String> param = new HashMap<String, String>();
                            int num = myZfbYsdzDetailNewFacade.importExecle(innerList,oldeOrder,objectId,param);
                           ......
                        }
                    }
                }
            }
            return null;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

标签:异步,sheet,ajaxFileUpload,struts,upload,fileName,return,null,data
来源: https://blog.csdn.net/EleganceAndNobility/article/details/122241634

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有