摘要
通过controller接收参数,再利用自定义post请求,以表单上传的方式,向遇见图床上传图片。
之所以选择遇见图床,是因为比较方便,可以立马使用。给大家展示一下它的上传图片的API接口。
不要感动,我会贴的比较详细
至于前端怎么传这两个参数,想必不用多说,以下贴的都是后端代码
Controller
@PostMapping("/uploadImage")
@ResponseBody
public Object upload(MultipartFile file, String nameSeparator){
//因为我是做成字符串格式的,所以在这边做了一个json处理
String result = UploadImageUtils.upload2Http(file, nameSeparator);
return JSON.parse(result);
}
解释:
file:即上传的文件,前端页面选择的文件。
nameSeparator:我自己写的时候需要的一个参数,用来帮助重新生成图片名称的。如果你们有别的参数,也可以自己加上,不需要的话,就去掉。
UploadImageUtils.upload2Http
public class UploadImageUtils {
public static String upload2Http(MultipartFile file, String nameSeparator) throws IOException {
//原文件名称
String originalFileName = file.getOriginalFilename();
// 新文件名
String fileName=creatHttpFileName(nameSeparator,originalFileName);
//新文件
File upImage = new File(fileName);
file.transferTo(upImage);
//转给另一个post请求,将图片重命名后,发送给遇见图床。这里再做一个图片大小的处理
HashMap<String,Object> params = new HashMap<>();
params.put("apiType","ali"); //必备参数一
params.put("token","0e5cfda4deff764253a4ea15b06cdae2"); //必备参数二,在遇见图床的用户中心里面可以找到
HashMap<String,File> files = new HashMap<>();
files.put("image",upImage); //必备参数三,即要上传的图片文件
return HttpUtils.doPost