七牛上传图片html,springboot+七牛云+html上传图片

pom部分

com.qiniu

qiniu-java-sdk

7.2.0

首先是html部分--前端使用的是bootstrap

产品图片

1295057103165136896.htm

application.yml配置文件部分

qiniu:

accessKey: 8sK3a8CKpxBI01X-机密。。。

secretKey: _0nkPMSkE8l3a2fRnWF-机密。。

bucket: gaokao

domian: http://******

baseUploadUrl: d://temp/

然后是js部分

/**

* 上传图片

*/

ProductInfoDlg.uploadImg = function () {

var formData = new FormData();

formData.append("image", $("#imageFile")[0].files[0]);

$.ajax({

url: Feng.ctxPath + "/policyNews/uploadImg", /*接口域名地址*/

type: 'post',

data: formData,

contentType: false,

processData: false,

success: function (data) {

if (data.code == "200") {

$("#upImage").attr("src", data.content.url);

$("#image").val(data.content.url);

$("#imageName").val(data.content.imageName);

$("#showImage").show();

Feng.success("上传成功!");

} else {

Feng.error("上传失败!" + data.message);

}

}

})

};

/**

* 移除已上传的图片

*/

ProductInfoDlg.removeImg = function () {

var key = $("#imageName").val();

//提交信息

var ajax = new $ax(Feng.ctxPath + "/policyNews/removeImg", function (data) {

$("#upImage").attr("src", "");

$("#image").val("");

$("#imageFile").val("");

$("#imageName").val("");

$("#showImage").hide();

}, function (data) {

Feng.error("移除失败!" + data.responseJSON.message + "!");

});

ajax.set("key", key);

ajax.start();

};

/**

* 初始化回显上传的图片

*/

$(function () {

var image = $("#image").val();

if (image) {

$("#showImage").show();

var str = image.split("/");

$("#imageName").val(str[str.length - 1]);

}

});

后端java部分

控制类中的代码

/**

* 上传图片

*/

@RequestMapping(value = "/uploadImg",method = RequestMethod.POST)

@ResponseBody

public ResponseData uploadImg(@RequestParam(value = "image") MultipartFile image) {

return policyNewsService.uploadImg(image);

}

/**

* 移除图片

*/

@RequestMapping(value = "/removeImg")

@ResponseBody

public Object removeImg(@RequestParam String key) {

policyNewsService.removeImg(key);

return SUCCESS_TIP;

}

业务类中的代码

@Autowired

private UploadManager uploadManager;

@Autowired

private BucketManager bucketManager;

@Value("${baseUploadUrl}")

private String url;

@Value("${qiniu.bucket}")

private String bucket;

@Value("${qiniu.domian}")

private String domian;

@Override

public ResponseData uploadImg(MultipartFile image) {

ResponseData responseData;

try {

Map map = new HashMap();

String fileName = String.valueOf(System.currentTimeMillis());

File file = new File(url + fileName);

//将MulitpartFile文件转化为file文件格式

image.transferTo(file);

Response response = this.uploadManager.put(file, null, getUploadToken());

//解析上传的结果

DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);

String imageName = putRet.hash;

int retry = 0;

while (response.needRetry() && retry++ < 3) {

response = this.uploadManager.put(file, null, getUploadToken());

}

map.put("url", domian + imageName);

map.put("imageName", imageName);

responseData = ResponseData.ok().setContent(map);

} catch (IOException e) {

e.printStackTrace();

responseData = ResponseData.error().setMessage(e.getMessage());

}

return responseData;

}

@Override

public void removeImg(String key) {

try {

bucketManager.delete(this.bucket, key);

} catch (QiniuException e) {

e.printStackTrace();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 首先,需要在七牛云上创建一个存储空间,并获取该存储空间的accessKey、secretKey、bucket和domain。 2. 在Springboot中引入七牛云的Java SDK,可以通过Maven或Gradle进行引入。例如,在Maven中添加以下依赖: ``` <dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>[7.2.0, 7.2.99]</version> </dependency> ``` 3. 创建一个七牛云的配置类,用于存储accessKey、secretKey、bucket和domain等配置信息。 ``` @Configuration public class QiniuConfig { @Value("${qiniu.accessKey}") private String accessKey; @Value("${qiniu.secretKey}") private String secretKey; @Value("${qiniu.bucket}") private String bucket; @Value("${qiniu.domain}") private String domain; @Bean public Auth auth() { return Auth.create(accessKey, secretKey); } @Bean public Configuration configuration() { return new Configuration(Zone.zone0()); } @Bean public UploadManager uploadManager() { return new UploadManager(configuration()); } @Bean public BucketManager bucketManager() { return new BucketManager(auth(), configuration()); } @Bean public StringMap putPolicy() { StringMap putPolicy = new StringMap(); putPolicy.put("returnBody", "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"bucket\":\"$(bucket)\",\"name\":\"$(fname)\",\"size\":$(fsize)}"); return putPolicy; } @Bean public String uploadToken() { return auth().uploadToken(bucket, null, 3600, putPolicy()); } @Bean public String domain() { return domain; } } ``` 4. 在Vue中使用element-ui的上传组件,设置上传的接口为Springboot的接口。 ``` <el-upload class="upload-demo" action="/api/upload" :show-file-list="false" :on-success="handleSuccess" :before-upload="beforeUpload" :headers="{Authorization: 'Bearer ' + token}" > <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> </el-upload> ``` 5. 在Springboot中编写上传接口,在该接口中使用七牛云的Java SDK进行上传。 ``` @RestController @RequestMapping("/api") public class UploadController { @Autowired private UploadManager uploadManager; @Autowired private String uploadToken; @Autowired private String domain; @PostMapping("/upload") public ResponseEntity<?> upload(@RequestParam("file") MultipartFile file) throws IOException { try { Response response = uploadManager.put(file.getBytes(), null, uploadToken); if (response.isOK()) { String key = JSON.parseObject(response.bodyString()).getString("key"); return ResponseEntity.ok(domain + "/" + key); } } catch (QiniuException e) { e.printStackTrace(); } return ResponseEntity.badRequest().build(); } } ``` 6. 程序运行后,在Vue中上传图片即可自动将图片上传到七牛云,并返回图片的访问URL

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值