发表于: 2018-01-27 22:45:16
2 569
今天完成的事情:
1.增加数据库字段,头像,邮件,电话号码,修改实体类,修改sql语句。
2.完成第三方邮件发送demo及测试。(官网sdk改了很少,不贴了)
3.完成第三方图片存储,七牛云上传图片demo。
public class UploadHead {
private String accessKey = "24gxIUZ5j7kqonT62C5lb6ioALAnoMbwi0XMdPc8";
private String secretKey = "5m0iyWHewOwMgqx-6CdA3KLcbpZmbzVZ3VWc3yhC";
private String bucket = "picture";
private String headName = null;
public String UploadAndGetName(String name) {
//构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone2());
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
//如果是Windows情况下,格式是 D:\\qiniu\\test.png,这里需要自定义。
String localFilePath = name;
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = null;
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);
headName = putRet.hash;
} catch (QiniuException ex) {
Response r = ex.response;
System.err.println(r.toString());
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
//ignore
}
}
return headName;
}
}
完成页面提交图片到服务器并上传七牛云存储的功能。
@RequestMapping(value="/fileSave",method= RequestMethod.POST)
public String fileSave(Model model, @RequestParam MultipartFile[] files, HttpServletRequest request) throws Exception{
//获取当前的用户
int id = FromCookieGetId.getId(request);
Student student = studentMapper.selectByPrimaryKey(id);
String picName = student.getUserName();
String name = null;
//文件存放的位置
String path=request.getServletContext().getRealPath("/files");
for (MultipartFile file : files) {
System.out.println(file.getOriginalFilename());
System.out.println(file.getSize());
System.out.println("--------------------------");
//获取上传文件的格式名
//String[] postffix = file.getOriginalFilename().split("\\.");
int n = file.getOriginalFilename().length();
String postffix = file.getOriginalFilename().substring(n-4,n);
name = picName+postffix;
File tempFile=new File(path, name);
file.transferTo(tempFile);
}
//上传7牛云
System.out.println("开始上传7牛云");
UploadHead uploadHead = new UploadHead();
String headname = uploadHead.UploadAndGetName(name);
System.out.println("七牛返回文件名"+headname);
student.setHeadPicture(headname);
studentMapper.updateByPrimaryKeySelective(student);
return "hello";
}
}
遇到的问题:
1.头像上传是可以在前端实现的,后端只需要传一个upToken。但是由于javascript水平太低,官方sdk看不懂。所以改为前端接受头像保存到服务器,然后从服务器上传到七牛云。
收获:
1.七牛云存储的使用,可以使用链接直接访问存储的图片。
2.服务器接受页面上传的图片并保存到本地。
明天的计划:
1.完成带邮件激活功能的注册系统。
任务6开始时间:2018.1.23
预计完成时间:2018.1.28
禅道:http://task.ptteng.com/zentao/project-task.html
评论