ajaxsubmit與fileupload完成上傳文件

已經是第二次用ajaxsubmit上傳文件了,還是遇到很多問題,糾結一上午總算弄出來了。
1. java需要導入的jar包
commons-fileupload-1.2.jar(MultiPartHttpServletRequest類)
commons-io.jar(沒有這個包會報錯)

java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
ajaxSubmit上傳文件不能進入控制器,並且報錯
原因:commons-fileupload jar 包從1.0升到1.1的時候。DeferredFileOutputStream.class被移除了,而commons-io jar存在DeferredFileOutputStream.class這個類

2.引入js文件
jquery.form.js(ajaxSubmit提交)
3.代碼
html:

<form action="" id="testForm" enctype="multipart/form-data" method="post">
            <input name="proCode" value="12" type="text">
            <input  name="itemEntry_image" class="projectfile" type="file"/>
            <input  name="itemEntry_file" class="projectfile" type="file"/>
            <button id="testOK" type="button">測試</button>
</form>

js代碼:

//按鈕點擊事件,ajaxSubmit提交
    $("#testOK").click(function(){
        $("#testForm").ajaxSubmit({
                type : "POST",
                url : base+'projectInfoController/insertSelective.do',
                dataType:'JSON',
                success : function(data) {
                    if(data){
                        alert(data.msg);
                    }
                },
                error : function(e) {
                    alert("操作失敗!");
                }
        })
    });

springmvc代碼:

@ResponseBody
    @RequestMapping(value="/addClassConfig",produces={"application/json;charset=UTF-8"})
    public String addClassConfig(HttpSession session,ClassConfig record,HttpServletRequest request){
        try{
            if(request instanceof MultipartHttpServletRequest){
                MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
                MultipartFile file= multipartRequest.getFile("uploadPic");//命名衝突,二進制流文件,不是字符串
                String pictureURL = null;
                //先保存附件
                if(file!=null){
                    String fileName=new Date().getTime()+"_"+file.getOriginalFilename();
                    String project_path=session.getServletContext().getRealPath("/");
                    pictureURL = SessionCode.IMAGES_ICON_CONFIG+fileName;
                    String completePath=project_path + pictureURL;
                    File uploadFile=new File(completePath);
                    if(!uploadFile.exists()){
                        uploadFile.mkdirs();
                    }
                    file.transferTo(uploadFile);
                }
                record.setPictureURL(pictureURL);
            }
            record.setId(UUIDFactory.getUUIDStr());
            int flag = classConfigService.insert(record);
            if(flag<=0){
                return this.setError("操作失敗!");
            }
        }catch(Exception e){
            logger.error("[addClassConfig]"+e.getMessage());
            return this.setError("操作失敗!");
        }
        return this.setSuccess("操作成功!");
    }

參考:http://zhupan.iteye.com/blog/26427
參考:http://blog.csdn.net/u013410747/article/details/49700103

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章