从服务器发起请求到七牛保存图片
来源:互联网 发布:佳能相机照片导入mac 编辑:程序博客网 时间:2024/05/22 16:06
第一步 :
maven导入依赖,其他的导入架包:
<dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>[7.2.0, 7.2.99]</version></dependency>
第二步 上传七牛 需要一个token值的,所以里面要先产生一个token值在put上传即可
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 com.qiniu.util.StringMap;import org.joda.time.DateTime;import org.json.simple.JSONObject;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.util.StringUtils;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import javax.servlet.http.HttpServletRequest;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/** * 七牛上传 */@Controllerpublic class QiNiuUpload { private static Logger log = LoggerFactory.getLogger(QiNiuUpload.class); private static final String ACCESS_KEY = "七牛注册时给的秘钥"; private static final String SECRET_KEY = "七牛注册时给的秘钥"; //要上传的空间名 private static final String bucketname = "";//简单上传 /** * 初始化一个上传管理对象(七牛提供) * * @return */ private UploadManager getUploadManager() {// Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); Zone z = Zone.autoZone(); Configuration c = new Configuration(z); return new UploadManager(c); } /** * 获得一个上传至七牛的token值 * * @param postfix * @return */ public String getUpToken(String postfix) { //密钥配置 Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); //简单上传,使用默认策略,只需要设置上传的空间名就可以了 StringMap x = new StringMap(); x.put("saveKey", "$(etag)" + postfix); x.put("returnBody", "{\"name\":\"自定义/"+ DateTime.now().toString("yyyy-MM-dd HH:mm:ss")+"/$(etag)" + postfix + "\",\"size\":\"$(fsize)\",\"w\":\"$(imageInfo.width)\",\"h\":\"$(imageInfo.height)\",\"hash\":\"$(etag)\"}"); return auth.uploadToken(bucketname, null, 3600, x); } /** * 调用方法传入参数开始上传,返回成功后的文件保存路径 * * @param file * @param fileName * @return * @throws IOException */ public String upload(byte[] file, String fileName) throws IOException {//不仅仅是byte数组,也可以是文件地址,文件, try { String postfix = fileName.substring(fileName.lastIndexOf("."), fileName.length());//获得文件名的后缀 //调用put方法上传 Response res = getUploadManager().put(file, null, getUpToken(postfix)); //打印返回的信息 String resBodyStr = res.bodyString(); Map<String, String> map = JacksonUtil.readValue(resBodyStr, HashMap.class); log.info("七牛上传成功返回:{}", resBodyStr); return map.get("name");//上传成功后返回的保存文件的名字 } catch (QiniuException e) { Response r = e.response; log.error("请求失败时打印的异常的信息:{}",r.toString()); try { log.error("响应的文本信息:{}",r.bodyString()); return "error"; } catch (QiniuException e1) { log.error("七牛上传失败,打印失败信息:{}",e1.getLocalizedMessage()); return "error"; } } }}
服务器与前端 请参考我的其他文章 ajax上传文件(poi)
uploadFile //是上传来的字节输入流fileName//文件名字
String uploadUrl = new QiNiuUpload().upload(uploadFile.getBytes(), fileName);
0 0
- 从服务器发起请求到七牛保存图片
- 从服务器下载保存图片
- 从Qt客户端向Erlang服务器发起数据库分页查询的请求(1)
- 从Qt客户端向Erlang服务器发起数据库分页查询的请求(2)
- 从Qt客户端向Erlang服务器发起数据库分页查询的请求(3)
- 从Qt客户端向Erlang服务器发起数据库分页查询的请求
- 根据请求生成缩略图片保存到Linux图片服务器
- 从客户端发起DELETE、PUT请求
- 从客户端发起DELETE、PUT请求
- jquery之利用ajax与服务器交谈(发起GET和POST请求之发起POST请求)
- 使用.NET从SQL服务器保存和读取图片
- 如何从服务器的图片保存到本地
- android从本地媒体库获取图片上传至服务器保存
- php:从服务器上下载&保存一个远程图片
- php从服务器上下载&保存一个远程图片
- Unity 从服务器下载图片保存本地然后下次读取
- 从服务器获得图片并保存到手机
- 客户端http从服务器获取图片保存到指定位置
- Android设计模式---观察者模式
- python format 使用 技巧
- 遗传算法与直接搜索工具箱学习笔记 七-----模式搜索工作原理详解
- 3. GC 算法(基础篇) - GC参考手册
- 第34课 Python列表与文件读写
- 从服务器发起请求到七牛保存图片
- float: left; 与 float:roght; 不在一行解决放过
- 五、工厂模式(Factory Method Pattern)
- 自定义安装linux
- 磁敏二极管
- JDBC之 连接池
- C#request和response的中文乱码问题
- 七大排序之希尔排序
- 获取ASH