(一)单文件文件上传
@RequestMapping(value = "/upload",method = RequestMethod.POST)
@ResponseBody
Map<String,Object> upLoad(@RequestParam("name") String name, @RequestParam("images") MultipartFile images, HttpServletResponse response){
if (!images.isEmpty()){
String fileName=DateFormat.getDate();//获取当前时间为文件名
//String imageName=images.getOriginalFilename();//获取上传文件的文件名,包含扩展名
//String path="F:/JavaProject/store/src/main/resources/static/images";//文件存放的绝对路径
//File file1=new File(path,fileName+".jpg");//路径和文件名
File file2=new File(fileName+".jpg");//图片保存为jpg格式
try {
/*方法一:使用流*/
/* byte[] bytes=images.getBytes();
BufferedOutputStream outputStream=new BufferedOutputStream(new FileOutputStream(file1));
outputStream.write(bytes);//写入文件
outputStream.close();//关闭输出流
System.out.println(file);*/
/*方法二:配置文件*/
//前提是在application.properties文件中配置了文件保存的路径
//#默认上传文件存储位置
//spring.servlet.multipart.location=F:/JavaProject/store/src/main/resources/static/images
images.transferTo(file2);//将上传文件保存到目录文件
}catch (Exception e){
e.printStackTrace();
return ReturnMap.getMap(response.getStatus(),DateFormat.getDate(),"上传失败!");
}
return ReturnMap.getMap(response.getStatus(),DateFormat.getDate(),"上传成功!");
}
return ReturnMap.getMap(response.getStatus(),DateFormat.getDate(),"文件不存在!");
}
*注意: ReturnMap.getMap() 封装返回数据的方法
DateFormat.getDate() 封装时间类型的方法
(二)多文件上传:和单文件上传原理一样,改变为数组形式就可以了
@RequestMapping(value = "/uploads",method = RequestMethod.POST)
@ResponseBody
Map<String,Object> upLoads(@RequestParam("images") MultipartFile[] images,HttpServletResponse response
if (images.length>0){
try {
for (int i=0;i<images.length;i++){
File file2=new File(images[i].getOriginalFilename());//图片保存为jpg格式
images[i].transferTo(file2);//将上传文件保存到目录文件
}
}catch (Exception e){
e.printStackTrace();
return ReturnMap.getMap(response.getStatus(),DateFormat.getDate(),"上传失败!");
}
return ReturnMap.getMap(response.getStatus(),DateFormat.getDate(),"上传成功!");
}
return ReturnMap.getMap(response.getStatus(),DateFormat.getDate(),"文件不存在!");
}
补充:网页简单代码(这里只是为简单的测试,写得很简单)