2 zb51500618 zb51500618 于 2016.04.22 16:57 提问

ajaxfileupload多文件异步上传 获取不到file

今天用ajaxfileupload 上传图片,网上百度学习了半天 ,实现了一个图片的上传 ,成功了 。 同样的方法,同一个页面另外一个上传按钮却失败了。
跟踪了看 ,值都传到后台取到了;
CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest
.getFile(imgName);

imgName也是和页面的input type=file的id name 对应的 但是 这个file就是等于null。
弄了半天没搞出来   。  而且我原来是好好的上传功能,没用异步的,在从这个取不到file的页面跳转过去后,file文件同样获取不到,为null。


这个  搞得项目卡住了~  真闹心啊  。求大神救我~

3个回答

lcx578176119
lcx578176119   2016.04.22 17:26
已采纳

调试一下 肯定哪里出问题了! 不要急 你这里代码贴的太少了 异步就那样的格式 你按照格式检测一下.多试试

zb51500618
zb51500618 是个小问题 ~ 已解决
一年多之前 回复
zb51500618
zb51500618 代码我贴出来 大神看下
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.04.22 17:02

ajaxFileUpload 异步上传文件
ajaxfileupload实现文件异步上传
AjaxFileUpload实现文件异步上传
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

zb51500618
zb51500618   2016.04.22 17:47

后台代码

/**
     * 添加颜色图片
     * */
    @RequestMapping("/addColImg")
    @ResponseBody
    public String addColImg(HttpServletRequest request,Model model) {
        String commId =request.getParameter("commodityId");
        String colour =request.getParameter("colour");
        String imgName =request.getParameter("imgName");
        EncodingJudge ej = new EncodingJudge();
        Map<String,Object> map = new HashMap<String,Object>();
        if(commId!=null&&!commId.isEmpty()&&imgName!=null&&!imgName.isEmpty()){
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest
                    .getFile(imgName);


            map =fileUploadService.picUpload(file, 1, Integer.parseInt(commId));            



            CommodityColour cc = new CommodityColour();
            cc.setColourImage( map.get(ConstantUtil.FILE_PATH).toString()+map.get(ConstantUtil.PATH).toString());
            cc.setColour(ej.toUTF8(colour) );
            cc.setCommodityId(Integer.parseInt(commId));
            cc.setState(1);
            int i = commodityColourService.saveCommodityColour(cc) ;
            if(i>0){
                return cc.getId().toString();

            }else{
                return null;
            }
        }



           return null;
    }

    ``` 

前台js
```ruby

    //添加自定义颜色
    function  addColImg(index){
         var commid = $("#commodityId").val();

        var col = $("#colour"+index+"").val();



            $.ajaxFileUpload({
                 url: "<%=path%>/commodity/addColImg?commodityId="+commid+"&colour="+col+"&imgName=colImg"+index,

                    secureuri:true,

                    fileElementId:'colImg1',

                    dataType: 'json',

                    success: function (data){ 

                         var col = document.getElementById("colour"+index);

                         col.insertAdjacentHTML("beforeBegin","<input type='hidden' id='ccId"+index+"' value='"+data+"' />");
                         $("#btnAddCol"+index+"").hide();
                         $("#colImg"+index+"").remove();
                    }


            })



    }


    ``` 

那个web的input是通过js 拼接的 
像这样:    <input type="file"    value="添加图片" id="colImg1" name="colImg1"  />

js拼接代码:function getColourRow(){

            var addRow =document.getElementById("getNew");
            addRow.insertAdjacentHTML("beforeBegin","<span  style='width:450px;display:inline-block;float:left;margin-bottom:20px;' id='selfCol"+i+"'>自定义颜色<input type='text' style='width:240px;' id='colour"+i+"' name='colour"+i+"' /><input type='file'    value='添加图片' id='colImg"+i+"' name='colImg"+i+"'  /><input type='button' id='btnAddCol"+i+"' onclick='unCheck("+i+")'id='addColour"+i+"' value='添加' /><input type='button' id='addColour"+i+"' onclick='deleCol("+i+++")'  value='删除' /> </span>");


    }

表单from是这样的:     <form id="subform" action="<%=path %>/commodity/addSecond.do" method="post" enctype="multipart/form-data" >


我第一次添加是可以的   ,流程走的通   问题同标题
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!