1.前端筹备

<%@ page language="java" contentType="text/html; charset=UTF-8"   pageEncoding="UTF-8"%>  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <title>Insert title here</title>  </head>  <body>     <h1>实现文件长传</h1>     <!--enctype="开启多媒体标签" -->     <form action="http://localhost:8091/filetest" method="post"   enctype="multipart/form-data">        <input name="fileImage" type="file" />        <input type="submit" value="提交"/>     </form>  </body>  </html>

2.实现文件上传的步骤阐明

package com.jt.controller;    import org.springframework.web.bind.annotation.RequestMapping;  import org.springframework.web.bind.annotation.RestController;  import org.springframework.web.multipart.MultipartFile;    import java.io.File;  import java.io.IOException;    @RestController public class FileTestController {  @RequestMapping("/filetest")   public String file(MultipartFile fileImage){           String fileDir = "F:/CloudMusic/images";   File file = new File(fileDir); if(!file.exists()){  file.mkdirs();   }             String fileName = fileImage.getOriginalFilename();  File imageFile = new File(fileDir+"/"+fileName);      try {              fileImage.transferTo(imageFile);//Transfer the received file to the given destination file.   }catch(IOException e){              e.printStackTrace();          }              return "ok";        }  }

3.代码解释

3.1 前提

MultipartFile是spring类型,代表HTML中form data形式上传的文件,蕴含二进制数据+文件名称。

 public String file(MultipartFile fileImage){}
 <form action="http://localhost:8091/filetest" method="post"   enctype="multipart/form-data">        <input name="fileImage" type="file" />        <input type="submit" value="提交"/>     </form>  
3.2 封装文件的上传门路

封装文件上传的门路,如果文件存在间接封装,如果文件不存在应用file.mkdirs() 办法创立多级目录

 String fileDir = "F:/CloudMusic/images";   File file = new File(fileDir); if(!file.exists()){  file.mkdirs();   }  
3.3 封装文件的名称

fileImage.getOriginalFilename()//Return the original filename in the client's filesystem. 返回客户端文件系统中的原始文件名。

 String fileName = fileImage.getOriginalFilename();  File imageFile = new File(fileDir+"/"+fileName);      
3.4 文件的上传

fileImage.getOriginalFilename()//Transfer the received file to the given destination file. 将接管到的文件传输到给定的指标文件。

try {              fileImage.transferTo(imageFile);//Transfer the received file to the given destination file.   }catch(IOException e){              e.printStackTrace();          }