使用common-fileupload實現文件上傳

首先,頁面上的代碼:前端

<div class="wgt-pop-importExcel" style="display: none" id="batch_add_user">
        <form id="input_form" enctype="multipart/form-data"
              action="<%=RD.get("orgUrl")%>do?action=org/base/member_manager&start=input_org_member&ck_OrgId=<%=org_id%>"
              method="post">
            <div class="tip-1">您想要下載模板,快速導入組織成員信息。若您已擁有組織成員
                信息文件,可直接導入。<a href="<%=RD.get("orgUrl")%>/aidTemplate/memberTmpl.xls">員工列表導入範本.xls</a>
            </div>
            <div class="upload">
                <div class="btn btn-5 btn-uploadfile">
                    <input type="file" id="user_Info" name="user_Info" accept=".xls"><span>上傳</span>
                    <input type="text" style="display: none" name="dept_id" id="dept_id" value="">
                </div>
                <div class="curFile"></div>
            </div>

            <div class="tip-2">可導入Excel 03及以上版本,大小不超過1M的文件,單次最多導入100條
                記錄,內容格式請參考員工列表導入範本.xls。初始密碼爲:123456
            </div>
        </form>
        <div class="form-btns">
            <button class="btn btn-3" id="batch_add_btn">肯定</button>
        </div>
    </div>

和別的上傳同樣,只是修改:enctype="multipart/form-data"。java

整個業務的關鍵在於,文件上傳後須要解析成 HSSFWorkbook這個對象,有關於HSSFWorkbook這個的具體內容請百度。 直接上代碼:緩存

//文件存放地址
  String saveDirectory = System.getProperty("java.io.tmpdir").replace("\\", "/");
        saveDirectory = saveDirectory.endsWith("/") ? saveDirectory : saveDirectory + "/";
        saveDirectory += "fileTemp/";
        //解析類的工廠
        DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
        //文件大於臨界值時存放的文件夾目錄
        diskFileItemFactory.setRepository(new File(saveDirectory));
        //設置緩存臨界值
        diskFileItemFactory.setSizeThreshold(2 * 1024 * 1024);
        //生產一個解析類
        ServletFileUpload upload = new ServletFileUpload(diskFileItemFactory);
        //解析類所能放置文件的大小(在前端其實就有限制)
        upload.setFileSizeMax(2 * 1024 * 1024);
        List<JSONObject> result = new ArrayList<JSONObject>();
        JSONObject reJson = null;
        try {
            //解析頁面傳入的全部數據,
            List fileItems = upload.parseRequest(request);
            Iterator iter = fileItems.iterator();//迭代
            JSONObject textJson = new JSONObject();
            //迭表明單中的每一項內容
            while (iter.hasNext()) {
                FileItem file = (FileItem) iter.next();
                //若是傳入的數據是表單的數據,也就是表單中,非type=file類型的那些數據,input之類
                if (file.isFormField()) {
                    //獲取到對應的一系列數據
                    textJson.put(file.getFieldName(), file.getString());
                } else {
                //處理本身的業務,要存儲的存儲,要解析的解析
                。。。。。。
                }
                }

OK,打完收工,其實很簡單,post

相關文章
相關標籤/搜索