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

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