java上传图片到七牛云储存空间
如有需要可以加我Q群【308742428】大家一起讨论技术,提供技术支持。
后面会不定时为大家更新文章,敬请期待。
话不多说直接上代码:
前端这里我是使用的layui的插件,样式还是可以需要引入两个文件:
一个css样式文件,一个js文件
<script src="${ctxStatic}/layui/layui.js" charset="utf-8"></script>
html页面样式:
html代码:
<div class="col-xs-12"> <div class="form-group"> <label class="control-label col-sm-2">${text('图片')}:</label> <div class="col-sm-10"> <div class="layui-upload"> <button type="button" class="layui-btn" id="btn_imgs"><i class="layui-icon"></i>上传图片</button> <button type="button" class="layui-btn layui-btn-normal" οnclick="resetimg()" >清空图片</button> <div class="layui-upload-list"> <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;"> <div class="layui-upload-list" id="img_imgs"></div> </blockquote> <p id="imgsText"></p> <input type="hidden" id="img" name="img" value="${zrCircle.img}"> </div> </div> </div> </div> </div> </div>
javascript代码:
//清空图片
function resetimg(){
$('#img_imgs').empty(); $("#img").val("");
}
layui.use('upload', function(){
var $ = layui.jquery ,upload = layui.upload; //多图片上传 如何只需要上传单张图片multiple,number两个参数去掉即可 upload.render({ elem: '#btn_imgs' ,accept: 'images' ,acceptMime: 'image/*' ,exts: 'jpg|png|jpeg|bmp' ,url: '' //改成您自己的上传接口 ,multiple: true ,number:5 ,before: function(obj){ //预读本地文件示例,不支持ie8 obj.preview(function(index, file, result){ $('#img_imgs').append('<img src="'+ result +'" alt="'+ file.name +'" style="margin-left:10px;" class="layui-upload-img" width="200px" height="160px">') }); } ,done: function(res){ if(res.code ==500){ return layer.msg('上传失败'); }else{ //上传成功 var ss=$("#img").val(); if (ss.length>4){ ss=ss+","+res.url; }else{ ss=res.url; } $("#img").val(ss); //点击放大 renderImg(); } } ,error: function(){ //演示失败状态,并实现重传 var demoText = $('#imgsText'); demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>'); demoText.find('.demo-reload').on('click', function(){ uploadInst.upload(); }); } });
});
后台java代码:
/**
* 上传图片 * @param file * @return */ @PostMapping(value = "upload") @ResponseBody public Map<String,Object> upload(MultipartFile file) { String fileName=null; Map<String,Object> map=new HashMap<>(); try { File f = File.createTempFile("tmp", null); //通过MultipartFile的transferTo(File dest)这个方法来转存文件到指定的路径。MultipartFile转存后,无法再操作,会报错 file.transferTo(f); fileName = QiniuCloudUtil.upload(f); fileName="http://qiniu.zenran.com/"+fileName; System.out.println(fileName); //在JVM进程退出的时候删除文件,通常用在临时文件的删除. f.deleteOnExit(); map.put("code",200); map.put("url",fileName); } catch (IOException e) { map.put("code",500); map.put("url",fileName); e.printStackTrace(); } return map; }
QiniuCloudUtil工具类:
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
/**
- @author dsn
- @createTime 07 21:07
- @description 七牛云工具
*/
public class QiniuCloudUtil {
// 设置需要操作的账号的AK和SK private static final String ACCESS_KEY = ""; private static final String SECRET_KEY = ""; // 要上传的空间名 private static final String bucketname = ""; private static final String domain = ""; //外链域名 // 密钥 private static final Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
// //上传
public static String upload(File file) throws IOException { // 创建上传对象,Zone*代表地区 Configuration configuration = new Configuration(Zone.zone2()); UploadManager uploadManager = new UploadManager(configuration); try { // 调用put方法上传 String token = auth.uploadToken(bucketname); if(StringUtils.isEmpty(token)) { System.out.println("未获取到token,请重试!"); return null; } String imageName = UUID.randomUUID().toString(); System.out.println("File name = "+imageName); Response res = uploadManager.put(file,imageName,token); // 打印返回的信息 if (res.isOK()){ return imageName; } }catch (QiniuException e) { Response r = e.response; // 请求失败时打印的异常的信息 e.printStackTrace(); System.out.println("error "+r.toString()); try { // 响应的文本信息 System.out.println(r.bodyString()); } catch (QiniuException e1) { System.out.println("error "+e1.error()); } } return null; }
}
需要注意使用七牛云需要下载依赖包:
<groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>7.2.28</version> </dependency>
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Go 语言中的类型断言是什么?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! Type Assertion Type Assertion(中文名叫:类型断言),通过它可以做到以下几件事情 1.检查 i 是否为 nil 2.检查 i 存储的值是否为某个类型 具体的使用方式有两种: 第一种: 这个表达式可以断言一个接口对象(i)里不是 nil,并且接口对象(i)存储的值的类型是 T,如果断言成功,就会返回值给 t,如果断言失败,就会触发 panic。 来写段代码试验一下 运行后输出如下,可以发现在执行第二次断言的时候失败了,并且触发了 panic 如果要断言的接口值是 nil,那我们来看看也是不是也如预期一样会触发panic 输出如下,确实是会 触发 panic 第二种 和上面一样,这个表达式也是可以断言一个接口对象(i)里不是 nil,并且接口对象(i)存储的值的类型是 T,如果断言成功,就会返回其类型给 t,并且此时 ok 的值 为 true,表示断言成功。 如果接口值的类型,并不是我们所断言的 T,就会断言失败,但和第一种表达式不同的事,这个不会触发 panic...
- 下一篇
Python工作中代理IP的重要性!
目前,中国的互联网大军正在不断壮大,各种各样依托互联网的新兴行业正在兴起,哪怕是很多传统行业,为了抢占竞争的制高点,也将跟友商之间的竞争搬到了互联网平台之上。对于从事互联网工作的小伙伴来说,HTTP代理ip并不是一个陌生的存在,如果你恰好是做技术敲代码的专业人才,尤其是要负责网络爬虫(python)的相关工作,那么每天跟你打交道比较多的就是HTTP代理ip了。用简单一点的话说,HTTP代理ip就是你的通行证,如果你本地的IP地址访问受到了限制,那么就需要换一个通行证来顺利通行。我们都知道,网络爬虫(python)能够有自己的发展空间就是因为用爬虫(python)程序抓取网页信息便捷、高效、迅速,但是同时也要小心IP地址受限制。很简单的一个道理,比如说我们自己现在有一个网站,网站内容都是我们自己辛辛苦苦写出来的,但是就是会有很多恶意竞争的对象,专门用恶意程序爬虫(python)抓取我们自己的数据,所以为了能够保护自己的网站,宁可错杀一千也不放过一个,服务器的承载力总归是有限的,如果有程序一直超负荷抓取服务器信息,服务器很容易就崩溃了。因此现在很多互联网网站,为了保护自己网站的安全,都会设...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用