思路:确定好要上传的路径,然后创建文件(路径+文件名)
获取你要上传的文件的byte[](也就是获取文件的字节),然后通过io流,写到你自己创建的文件中
代码如下:
Controller:
@GetMapping("/StudentUpload")//学生端:答案上传
public String StudentUpload(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response){
System.out.println(file);
if(file.isEmpty()){
return "请选择图片";
}
String contentType = file.getContentType(); //图片文件类型
String fileName = file.getOriginalFilename(); //图片名字
//String filePath=request.getSession().getServletContext().getRealPath("/");//当前系统的路径
//filePath=filePath+"/upload/";//文件保存的路径
String filePath="D:/sts4/upload/";//文件存的路径
String path=filePath+fileName;
File fileImage=new File(path);
if(!fileImage.getParentFile().exists()){
fileImage.getParentFile().mkdirs();
}
try {
FileUtil.uploadFile(file.getBytes(),path,fileName);
return "上传成功 ";
} catch (Exception e) {
e.printStackTrace();
}
return "上传失败";
}
uitil:
public static void uploadFile(byte[] file,String filePath,String fileName)throws Exception{
File targetFile=new File(filePath);
if(targetFile.exists()){
targetFile.mkdirs();
}
FileOutputStream out =new FileOutputStream(filePath+fileName);
out.write(file);
out.flush();
out.close();
}
解释:MultipartFile 这个是个文件的类,能获取到要上传文件的名称,类型,字节等等的信息