什么是MultipartFile
MultipartFile是spring类型,代表HTML中form data方式上传的文件,包含二进制数据+文件名称。
FormData对象的使用
FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据。其主要用于发送表单数据,但亦可用于发送带键数据(keyed data),而独立于表单使用。如果表单enctype属性设为multipart/form-data ,则会使用表单的submit()方法来发送数据,从而,发送数据具有同样形式。
可以创建一个FormData对象,然后调用它的append()方法来添加字段。
@RequestMapping("upload") public String upload(@RequestParam("uploadfile") MultipartFile file,@RequestParam("paramValue") String paramvalue,HttpServletRequest request){ try{ //得到文件"upload"的服务器路径 String sysPath=request.getSession().getServletContext().getRealPath("upload"); String fileName=file.getOriginalFilename(); //得到文件名 File filePath=new File(sysPath,fielName); //得到文件路径 if(!filePath.getParentFile().exists()){ //判断服务器当前路径文件夹是否存在 filePath.getParentFile().mkdirs(); //不存在则创建文件夹 } BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(filePath)); out.write(file.getBytes()); out.flush(); out.close(); }catch(fileNotFoundException e){ e.printStrackTrace(); return "失败"; }catch(IOException e){ e.printStrackTrace(); return "失败"; } }
单文件上传
前段HTML页面:
多文件上传:
与单文件差别不大:前端多个,后端接收的时候方法参数使用数组:
@RequestParam("param") MultipartFile [] file