发表于: 2018-02-03 17:04:13
1 547
今天完成的事情
1.向项目中引入七牛云
这个狗东西真的难弄,所获引入不了,耗费我起码5个小时,期间各种方法都尝试过,仍然不行,最后将pom文件中添加的依赖挪动了下位置,他就能引进来了???????我真的是日了哈士奇了,什么贵问题,什么坑爹的情况?
那这个过程就先不说了。。。。玄学
2.开始尝试跑个Demo,但是又出现了新的错误:
传一下自己的工具类:
import com.google.gson.Gson;
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.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import org.apache.log4j.Logger;
public class QiNiuUpLoad {
public static void main(String[] args) {
Logger logger = Logger.getLogger(QiNiuUpLoad.class);
logger.info("进入到七牛云上传方法。");
try {
//构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone1());
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
String accessKey = "ArY-MmzkDOvkGPPrYDX5OBGjLEA_jYJSp4osbH7i";
String secretKey = "Y5ZK5A6OarxPcSzT2yqYiUltW9KSrNKLhuhasjT7";
String bucket = "pictures";
//如果是Windows情况下,格式是 D:\\qiniu\\test.png
String localFilePath ="D\\2.jpg";
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = "head";
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
Response response = uploadManager.put(localFilePath, key, upToken);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
System.out.println(putRet.key);
System.out.println(putRet.hash);
} catch (QiniuException ex) {
Response r = ex.response;
System.err.println(r.toString());
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
//ignore
}
}
} catch (Exception e) {
System.out.println("七牛云上传图片模块有错误");
e.printStackTrace();
}
}
}
就是这样了,但是运行报错了,还不知道怎么解决这个报错:
然后仔细查看了一波,发现问题所在:
String localFilePath ="D:\\2.jpg";
这行少了:。。。。。哇 我要疯了
然后信心慢慢地再次运行:
我的妈。。。想哭,委屈,仔细查看。。。发现好像是zone出错了:
噗。。真的是这的问题,修改这行:
Configuration cfg = new Configuration(Zone.zone0());
原来是1,改成0,运行:
妈耶,终于成功了,我的亲亲。。
3.那么接下来就是在项目中集成了:
将上面的main方法去掉,换个皮,然后将参数改成图片的路径,以及图片上传之后的名字。
public void pickUp(String picturepath,String head) {
然后下面的也要稍微改一下:
String localFilePath =picturepath;
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = head;
完事具备之后开始整注册界面的jsp:
<form action='${pageContext.request.contextPath}/upload' method='post'>
<table>
<tr>
<td>头像上传路径:</td>
<td><input type="text" name="picturepath"></td>
</tr>
<tr>
<td><input type="submit" value="开始上传"></td>
</tr>
</table>
</form>
@RequestMapping(value = "/upload",method =RequestMethod.POST)
public String UpLoad(String picturepath){
QiNiuUpLoad up = new QiNiuUpLoad();
up.pickUp(picturepath,"aaa");
return "ok";
}
这些都正好了直接开始跑就行了
弹出这个界面,表示上传成功了。。
去七牛云看一看:
已经多了这个文件,没毛病。
4.接下来就是把账号密码归类由spring管理了。
一顿操作猛如虎,都整好了,但是吧。。问题又出现了:
我的配置就是这样了,全部能从配置文件取到值,但是运行之后发送短信或者邮件的时候就会这样:
上面这个是发送短信验证码的时候出现的问题,下面这个是邮件的:
一波空指针异常。。莫名其妙,我的97行代码是这样的:
email.sendMail(mail,verify);
调用工具类的发送邮件的方法。
很难受,不知到什么地方出现了问题
今天遇到的问题:
就是上面说到的这个问题了。
今天的收获:
在项目中使用七牛云
明天计划的事情:
明天将上面的问题解决,然后推进任务七。
评论