毕业设计涉及到用户修改个人信息的图像。
首先是上传图片的接口:我这里将用户上传的图片保存到COS中,关于腾讯云的对象存储可以点下面链接了解一下(腾讯云对象存储SDK文档)。
SpringBoot 关于上传的代码:
controller
@RequestMapping(value = "/img",method = RequestMethod.POST)
@ResponseBody
public BaseModel<String> uploadImgQiniu(@RequestParam("file") MultipartFile multipartFile) throws IOException {
BaseModel<String> res =new BaseModel<>();
File f = null;
try {
f=File.createTempFile("tmp", null);
multipartFile.transferTo(f);
} catch (IOException e) {
e.printStackTrace();
}
// 图片命名规则
String imgName = multipartFile.getOriginalFilename();
String[] arrays=new String[20];
arrays = imgName.split("\\.");
String filename = "xynu-computer"+System.currentTimeMillis()+"cl."+arrays[arrays.length-1];
String path = uploadService.SimpleUploadFileFromLocal(f,filename);
f.deleteOnExit();
res.setData(path);
return res;
}service
//
public String SimpleUploadFileFromLocal(File fileInputStream,String name) {
String etag="https://banner-2253468382.cos.ap-beijing.myqcloud.com";
// 1 初始化用户身份信息(secretId, secretKey)
COSCredentials cred = new BasicCOSCredentials("AKID**************", "*******************");
// 2 设置bucket的区域
ClientConfig clientConfig = new ClientConfig(new Region("ap-beijing"));
// 3 生成cos客户端
COSClient cosclient = new COSClient(cred, clientConfig);
// bucket名需包含appid
String bucketName = "banner-123456789";
String key = "/img/"+name;
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, fileInputStream);
// 设置存储类型, 默认是标准(Standard), 低频(standard_ia), 近线(nearline)
putObjectRequest.setStorageClass(StorageClass.Standard_IA);
try {
PutObjectResult putObjectResult = cosclient.putObject(putObjectRequest);
// putobjectResult会返回文件的etag
//etag = putObjectResult.getETag();
} catch (CosServiceException e) {
e.printStackTrace();
} catch (CosClientException e) {
e.printStackTrace();
}
// 关闭客户端
cosclient.shutdown();
return etag+key;//返回图片的链接
}这里可以通过Postman测试一下接口是否调通:

通过AngularJS4来上传图片


此时上传图片大小最大为1M,如果需要上传更大图片(不超过20M,腾讯云文件上传的接口最大20M)需要配置

版权声明:本文为qq442270636原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。