多文件上传

下面多文件上传的方法存在缺陷,目前发现谷歌49.0.2623版本不支持(因为该版本不支持Jquery的clone方法但是上传插件里有用clone方法),但是高版本的谷歌可以,IE10上也测试通过

$.ajaxFileUploadfx({
                url:"advertisementManager/insertOrUpdateAdInfo",
                secureuri: false,
                fileElementId:inputId,//这里被改造成了数组
                dataType: 'text', //返回数据的类型  
                method: "post",
                data: {
                    "submitType":submitType,
                    "updateId":updateId                
                    },
                success: function(data, status) {
                },
               error: function(data, status, e) {
                }
            });

附上ajaxfileupload.js的fileElementId被改成数组的代码

多文件上传

后端通过MultipartHttpServletRequest类去接收

@RequestMapping(value = "/insertOrUpdateAdInfo", method = RequestMethod.POST)
    @ContentNegotiate(ParameterName = "contentType", mediaType = ContentNegotiate.TEXT_HTML)
    public String insertOrUpdateAdInfo(MultipartHttpServletRequest request)
    {
        LocalContext localContext = new LocalContext();
        if (!(request instanceof MultipartHttpServletRequest))
        {
            localContext.failed("请求类型不正确!");
        }
        Map<String, Object> param = new HashMap();
        param.put("id", request.getParameter("updateId"));//获取属性
        Map<String,MultipartFile> mulfile = request.getFileMap();
        InputStream inputstream = null;
        for(Entry<String, MultipartFile> multiFile: mulfile.entrySet())
        {
                inputstream = multiFile.getValue().getInputStream();//获取文件流
                String uploadFileName = multiFile.getValue().getOriginalFilename();//获取文件名

      }

}

补充通过form表单提交多文件的方法,该方法经测试支持高低版本的谷歌浏览器

需要插件jquery-form.js

HTML页面:(注意每个input须有name属性,form表单提交数据,后台是通过name获取数据的)

<form id="fileinput" enctype="multipart/form-data">
                  <input type="text" id="adName" name="adName" style="display:none">
                  <input type="text" id="adDesc" name="adDesc" style="display:none">
                  <input type="text" id="adType" name="adType" style="display:none">
                  <input type="text" id="adNumber" name="adNumber" style="display:none">
                  <input type="text" id="submitType" name="submitType" style="display:none">
                  <input type="text" id="updateId" name="updateId" style="display:none">
                  <input type="file" name="myFile0" id="myFile0" multiple="multiple"/>点击这里上传文件
  </form>

js:

//给form里面的属性赋值,需要一同传到后台
            $("#adName").val($("#adNameInModel").val()||"");
            $("#adDesc").val($("#adDescInModel").val()||"");
            $("#adType").val($("#adTypeInModel").val()||"");
            $("#adNumber").val($("#adNumberInModel").val()||"");
            $("#submitType").val(submitType||"");
            $("#updateId").val(updateId||"");   
            $("#fileinput").ajaxSubmit({
                url:ajax.addressIP.testAdress + "advertisementManager/insertOrUpdateAdInfo",
                type: "post",
                success: function(data, status) {
                },
               error: function(data, status, e) {
                }
            });