发表于: 2018-01-27 22:45:16

2 568


今天完成的事情

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








返回列表 返回列表
评论

    分享到