18910140161

SSM项目如何上传图片到腾讯云COS

顺晟科技

2021-06-16 10:50:58

364

一、罐子包

!- JSONObject需要导入的包-

属国

groupIdorg.apache.clerezza.ext/groupId

artifactIdorg.json.simple/artifactId

0.4版/版本

/依赖性

!-文件上传-

属国

GroupIdCommons-文件上传/GrouPid

artifactId comes-文件上传/artifactId

版本1 .3 .2/版本

/依赖性

!-腾讯云装货付款(货到付款)需要依赖的冲突包-

属国

groupIdcom.qcloud/groupId

artifactIdcos_api/artifactId

版本5 .2 .4/版本

/依赖性

二、自定义工具类COSConfig.java

该工具类是用来存放申请到的腾讯云对象存储装货付款(货到付款)的相关信息,关于这些信息如何获取请看博客后面第六点。

package com.utils

//腾讯云装货付款(货到付款)对象存储常量

公共类COSConfig {

//secretId

public static final String SECRETID=' akid fo 0zz * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *;

//secretKey

public static final String SECRETKEY=' B1Jzp9y * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *;

//桶的区域,COS地域的简称请参照https://www.qcloud.com/document/product/436/6224

公共静态最终字符串区域=' AP-广州;

//桶名需包含应用编号

public static final String BUCKETNAME=' hstc-image-125 * * * * * * * * ';

}

三、自定义工具类DateConvent.java

DateConvent.java是自己写的一个类型转换工具类。

package com.utils

导入Java。文字。SimpleDateformat

导入Java。util。日期;

//转换时间的工具类

公共类日期转换{

公共字符串toString(日期日期){

简单日期格式简单日期格式=新的简单日期格式(' yyyy-MM-DD ');

字符串时间=简单日期格式。格式(日期);

返回时间;

}

}

四、图片上传和删除工具类ImageHandle.java

导入com。qcloud。因为。CosClient

导入com。qcloud。因为。ClientConfig

进口。com。qcloud。因为。auth。基本要素;

导入com。qcloud。因为。auth。CosCredentials

导入com。qcloud。因为。例外。CosClientException

导入com。qcloud。因为。例外。CosServiceException

导入com。qcloud。因为。例外。MultiObjectDeleteException

导入com。qcloud。因为。模特。*;

导入com。qcloud。因为。地区。地区;

导入组织。SLF 4j。伐木工人;

导入组织。SLF 4j。logger FactOr

导入组织。spring框架。web。多部分。多部分文件;

导入Java。io。IOexception

导入Java。io。InputStream

导入Java。util。ArrayList

导入Java。util。日期;

导入Java。util。列表;

导入Java。util。UUID;

公共类ImageHandle {

私有静态最终Logger=Logger工厂。getlogger(imagehandle。类);

/**

* 上传图片

* @param文件

* @返回

* @抛出异常

*/

公共静态字符串上传图像文件(多部分文件)引发IOException {

if (file!=null) {

//获取文件内容类型

string ContentType=file。getContentType();

//获取上传文件的文件流

InputStream InputStream=文件。getinputstream();

//获取文件的字节数

long size=file。GetSize();

//判断文件是否为空

if (size!=0) {

//初始化用户身份信息(保密,保密)

//机密tid,secretKey是腾讯装货付款(货到付款)的一个账号和密码

COSCredentials cred=新的基本凭据(Cosconfig .SECRETID,COSConfig .SECRETKEY);

//设置水桶的区域,COS地域的简称,请参照:

//https://www . qcloud.com/document/product/436/6224

客户端配置客户端配置=新客户端配置(新区域(COSConfig .REGION);

//生成余弦客户端

CosClient CosClient=new CosClient(cred,客户端配置);

//桶名需包含应用编号

String bucketName=COSConfig .BUCKETNAME

//获取后缀名

string[]split=ContentType。split('/');

//文件名

String uuid=UUID.randomUUID().toString().replaceAll('-',' ');

//当前日期

Date Date=new Date();

date Convert util=new DateConvert();

字符串DD=util。ToString(日期);

//目标文件名

string key='/韩石'/' dd '/' uuid ' . '拆分[1];

字符串IMgname=key。substring(1);

objectmetadata对象元数据=new object metadata();

//朱庇特安特卫普安特卫普安特卫普内容长度

//唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟http(http)是朱庇特朱庇特朱庇特,三、范仲淹缩放(缩放)阿云哥

object元数据。setcontentlength(大小);

//黄公子什么事跩子关键点你好contenttype(内容类型)

//吴亚玲吗contenttype(内容类型)黄公子

对象元数据。设置内容类型(内容类型):

putobjectrequest putobjectrequest=

新的PutObjectRequest(bucketName、key、inputStream、对象元数据);

//徐徐曰,黄公子(默认设置),魏冄(预设_ia),阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏,阿苏(近线)

putobjectrequest。setstoraase(存储类)已复制。标准(标准):

尝试[

//吴经熊?吴经熊什么事

cosclient。putobject(putobject请求):

} catch(co service异常e)}

e .print stack trace();

} catch(cosclient异常e)}

e .printstacktrace();

}

//魏冄

cosclient.shutdown():

//菲奥纳维奥纳什么事云娥与云娥同在,哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟什么事范思哲,范思哲

//阿金阿金阿金阿金阿金阿金阿金阿金阿金阿金阿金阿金阿金阿金阿金阿金阿金阿金阿金https://hstc图像-1254334144 .因为。表示“往”广州。myqcloud.com/' IMGName

返回imgname

}

}

返回""

}

/**

*你好(你好,你好桶!桶吴经熊说)

* @param imgname

* @返回

*/

公共静态布尔deleteimagefromcos(img名称字符串)}

//吴经熊和吴经熊(secretid,secretKey)

COSCredentials cred=新建基本凭证(COSConfig).secretid、COSConfig .SECRETKEY(秘密密钥):

//沙吾提桶!桶阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔阿刻尔,什么喂喂喂喂喂第339次全体会议

客户端配置客户端配置=新客户端配置(新区域(COSConfig).区域(地区));

//阿金什么事那是什么

COSClient cosclient=新建COSClient(cred、clientConfig):

//桶哎哎哎哎appid(appid)

字串bucketName=COSConfig .七叶树名称

deleteobjects request deleteobjects request=new deleteobjects request(存储桶名称);

//阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云阿云关键点哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟,你好吗1000云娥

ArrayListDeleteObjectsRequest .密钥版本密钥列表=new ArrayList();

//吴亚玲吴亚玲

keyList.add(新建删除对象请求).关键版本(imgName):

===ytet-伊甸园字幕组=-翻译:粒粒粒尘紫月猫姐风景校对:阿衡时间轴:邦德猪

//喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂喂,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨,嗨列表(列表),朱庇特朱庇特密钥列表(键列表)

//keyList.add(新的密钥版本(' 2018-04-19/99440 EC 2800 E4 a3 baef 9 e 84 c 662 a 546d。普通');

//keyList.add(新密钥版本(' 2018-04-18/4b 566 AEF 3 b5 D4 b28 BD 12 D6 e32 a 72 dad 9。JPEG’);

//keyList.add(新的密钥版本(' 2018-04-18/tttt ');

===ytet-伊甸园字幕组=-翻译:粒粒粒尘紫月猫姐风景校对:阿衡时间轴:邦德猪

deleteobjectsrequest。设置密钥(密钥列表);

//诶诶哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟

尝试[

deleteobjects result deleteobjects result=cos client。deleteobjects(deleteobjects request);

listdeleteobjectsreresult .deletedobject deleteobjectresult数组=deleteobjectsreresult。getdeletedobjects();

} catch(多对象DeleteException mde) { //你好你好你好,

//阿忠多重物件删除异常

listdeleteobjectsreresult .deletedobject deleteobjects=mde。getdeletedobjects();

listmultiobjectdeleteexception .deleteerror deleteerrors=mde。get errors();

//魏冄

cosclient.shutdown():

返回错误的

} catch(co service异常e){//哈罗!哈罗!哈罗!哈罗,吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人吉卜赛人,

//菲兰达菲兰达CosServiceException(服务异常)

logger.error('哎哎哎哎');

e .print stack trace();

//魏冄

cosclient.shutdown():

返回错误的

} catch (CosClientException e) { //阿云娥,安其欣?安其欣?安其欣?安其欣?安其欣?安其欣?安其欣?安其欣?安其欣?安其欣?安其欣什么事

logger.error('是文世英,安其欣?安其欣?安其欣?安其欣?安其欣?安其欣?安其欣?安其欣?安其欣?安其欣?安其欣什么;

e .print stack trace();

//魏冄

cosclient.shutdown():

返回错误的

}

//魏冄

cosclient.shutdown():

返回真实的

}

}

你好控制器陈四平

以上,上传和删除图片已经封装为静态方法,只需要直接调用即可。

import org . spring framework . web . multipart . Multipart file;

import org . spring framework . web . multipart . multiparthttpersvletrequest;

@ request mapping(value='/insertrecallmentinfo ')

@ResponseBody

公共字符串添加(多部分文件文件,HttpServletRequest请求)引发IOException {

/*在前端UI的表单中使用上传图片时,需要对请求进行如下处理*/

//多部分MultipartHttpServletRequest mulRequest=(多部分httpersvletrequest)请求;

//String title=mulrequest . GetParameter(' title ');//获取标题

//.

//空洞的判断

if(file!=null ){

//上传图片成功后返回返回链接

string litig=imagehandle . uploadimagetocos(文件);

.

}

}

动词(verb的缩写)前端编程

后台控制器使用MultipartFile接收文件,需要将此属性添加到form form:enctype=" Multipart/form-data "。

表单操作=' # ' enctype=' multipart/form-data '

.

输入类型=' file ' name=' file ' id=' picID ' accept=' image/gif,image/jpeg,image/x-png'/

.

/form

第六,打造腾讯云COS

1.进入你的腾讯云服务器的控制台,打开对象存储。

在此插入图片描述

2.创建一个桶

在此插入图片描述

3.填写桶的相关信息

在此插入图片描述

4.检查基本配置

在此插入图片描述

5.收购SECRETID和SECRETKEY

https://console.qcloud.com/cam/capi

打开上面的链接,登录,就可以找到了,如下图:

如果次没有,自己创建一个新的密钥。

在此插入图片描述

七、批量上传图片

以下只是粗略的逻辑代码,可以根据自己的需要修改。同时也需要配合之前的单幅图片上传使用。

public void uploadPictureList1(多部分文件[]文件){

ListString list=null

int code=1;

if (file!=null file.length0) {

尝试{

list=new ArrayListString();

for(int I=0;i file.lengthi ) {

//循环获取单个图片文件[i],然后逐个上传

string upload=uploadImageToCos(file[I]);

list.add(上传);

}

} catch (IOException e) {

e . printstacktrace();

}

}

//把所有上传的图片链接放在一起,用逗号隔开

字符串imgName=

int index=0;

for(字符串:列表){

if(index!=0 ) {

imgName=',';

}

imgName=str

指数;

}

}

我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航