java使用ajax完成上传文件

本文实例为大家分享了java使用ajax完成上传文件的具体代码,供大家参考,具体内容如下

使用ajax上传文件最重要的就是实例化FormData来进行上传文件:

1、html代码:

<div class="kuang">     <p>文件上传</p>     <div class="san3">         <input type="file" name="fujianID" id="fujianID" onchange="UpdateFile()"/>         <input type = "hidden" name="fujianid" id="file2" />     </div> </div>

2、ajax请求代码:

<script type="text/javascript"> //上传文件 function UpdateFile(){     var file_fujian = $("input[name='fujianID']").val();//用户文件内容(文件)     // 判断文件是否为空      if ( file_fujian== "") {         layer.msg("青选择上传的附件",{icon:1,time:1000});         return false;     }     //判断文件类型,根据自己需要来做判断     /*var fujianID =  file_fujian.substring( file_fujian.lastIndexOf(".") + 1).toLowerCase();     if(fujianID != "xls" && fujianID !="xlsx"&&fujianID !="docx"&&fujianID !="doc"&&fujianID !="txt"){           layer.msg("请选择Execl文或者word文件或者txt文件格式!",{icon:1,time:2000});         return false;     }*/     //判断文件大小     var size1 = $("input[name='fujianID']")[0].files[0].size;     if (size1>104857600) {         layer.msg("上传的附件不能大于100M",{icon:1,time:2000});         return false;                     }     boo1 = true;     var type = "file";     var formData = new FormData();//这里需要实例化一个FormData来进行文件上传     formData.append(type,$("#fujianID")[0].files[0]);     $.ajax({         type:'POST',         url:'<%=request.getContextPath()%>/login/fujian_file',         data:formData,         async:false,         processData:false,         contentType:false,         success:function(data){             if (data=="error") {                 layer.msg("附件添加失败",{icon:1,time:2000});             }else{                 $("#file2").val(data.list);                 layer.msg("附件已添加",{icon:1,time:2000});             }         }     }); }

3、Java后台数据处理代码:

 /**      * 上传文件      * @param file      * @param model      * @param request      * @return      */     @RequestMapping(value="/fujian_file")     @ResponseBody     public Map<String, Object> uploadToUser(@RequestParam("file") MultipartFile file, Model model,HttpServletRequest request) {         String fileName = file.getOriginalFilename();         if (fileName.indexOf("\\") != -1) {             fileName = fileName.substring(fileName.lastIndexOf("\\"));         }         //String filePath = request.getContextPath()+ File.separator+"WebRoot"+ File.separator+"updatefile"+ File.separator;         // 获取项目名称,文件上传位置         String filePath =  request.getSession().getServletContext().getRealPath("/static/updatefile/files");         File f = new File(filePath);         if (!f.exists()) {             f.mkdirs();// 不存在路径则进行创建         }         FileOutputStream out = null;         try {             // 重新自定义文件的名称             Date date = new Date();             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");             String d = sdf.format(date);// 时间             //拼接文件路径和文件名             filePath = filePath +File.separator+ d + fileName;             out = new FileOutputStream(filePath);             out.write(file.getBytes());             out.flush();//清空缓冲区的数据流             out.close();//关闭流             } catch (Exception e) {                 //System.out.println(e); //打印抛出的异常             }         Map<String,Object> map = new HashMap<String,Object>();         map.put("list",filePath );         return map; // 返回文件地址     }

推荐阅读