前段请求类型为:form-data
1. 单独进行上传文件
用postman进行请求:
java处理:
@RequestMapping(“/upload”)
@ResponseBody
public String handleFileUpload(@RequestParam(“file”) MultipartFile file) {
if (!file.isEmpty()) {
try {
/*
* 这段代码执行完毕之后,图片上传到了工程的跟路径; 大家自己扩散下思维,如果我们想把图片上传到
* d:/files大家是否能实现呢? 等等;
* 这里只是简单一个例子,请自行参考,融入到实际中可能需要大家自己做一些思考,比如: 1、文件路径; 2、文件名;
* 3、文件格式; 4、文件大小的限制;
*/
String strPath = “d:/files/”+file.getOriginalFilename();
File file2 = new File(strPath);
if (!file2.getParentFile().exists()) {
boolean result = file2.getParentFile().mkdirs();
if (!result) {
System.out.println(“创建失败”);
}
}
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(file2));
System.out.println(file.getName());
out.write(file.getBytes());
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
return “上传失败,” + e.getMessage();
} catch (IOException e) {
e.printStackTrace();
return “上传失败,” + e.getMessage();
}
return “上传成功”;
} else {
return “上传失败,因为文件是空的.”;
}
}
2. 批量进行上传文件:
偷懒前台没写,直接用postman进行请求:
后台处理:
//批量上传
@RequestMapping(value = “/batch/upload”, method = RequestMethod.POST)
@ResponseBody
public String handleFileUpload(HttpServletRequest request) {
MultipartHttpServletRequest params=((MultipartHttpServletRequest) request);
List<MultipartFile> files = ((MultipartHttpServletRequest) request)
.getFiles(“file”);
String name=params.getParameter(“name”);
System.out.println(“name:”+name);
String id=params.getParameter(“id”);
System.out.println(“id:”+id);
MultipartFile file = null;
BufferedOutputStream stream = null;
for (int i = 0; i < files.size(); ++i) {
file = files.get(i);
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
stream = new BufferedOutputStream(new FileOutputStream(
new File(file.getOriginalFilename())));
stream.write(bytes);
stream.close();
} catch (Exception e) {
stream = null;
return “You failed to upload ” + i + ” => ”
+ e.getMessage();
}
} else {
return “You failed to upload ” + i
+ ” because the file was empty.”;
}
}
return “upload successful”;
}
post一个二进制文件:
后台处理就简单了,流的读取和写:
//上传二进制
@RequestMapping(value = “/binary”, method = RequestMethod.POST)
@ResponseBody
public String BinaryFileUpload(HttpServletRequest request){
InputStream in = null;
OutputStream ut = null;
try{
in = request.getInputStream();
FileOutputStream fos=new FileOutputStream(new File(“d:/upload.jpg”));
//FileInputStream fs=(FileInputStream) multiReq.getFile(“file”).getInputStream();
byte[] buffer=new byte[1024];
int len=0;
while((len=in.read(buffer))!=-1){
fos.write(buffer, 0, len);
}
fos.close();
}catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(ut!=null)
{
ut.close();
}
if(in!=null)
{
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
结果就在d盘下新建了一个图片。