发表于: 2017-11-15 18:53:44

1 698


今日完成:

把功能都集合在一起。

明日计划:

做小课堂。

遇到的困难:

不知道如何在页面上显示在云上的图片,因为之前对象储存器设置为私有访问,不能只改文件名来访问,因为上面的访问链接有加密的东西。

后来把储存器改为公用读取就可以直接通过url来访问图片,url模板就是储存器域名+文件key。

还有一个问题就是不知道怎么把文件传到服务器,困了很久才解决,方案是需要放个解析器

<bean id="multipartResolver"
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
   <property name="maxUploadSize" value="100000"/>
</bean>

jsp的form中,需要添加enctype,特别是要post,我因为没设置method找了两小时问题,原因就是文件必须post,不然就会报空指针异常还是什么的忘了。

<form action="${ctx}/reg" enctype="multipart/form-data" method="post">

成果展示:

点击报到进入报到页,

填好手机号,点击那两个按钮就会用ajax对控制器发送请求,然后就调用发短信和邮件的接口。

提交后图片加载出来了。

文件的迁徙重点在于要要遍历bucket里的所有文件然后传送,而且两个储存器下载的时候返回的不一样,一个时返回url,一个是返回文件对象。ajax只要调用这个url就会迁移。

//阿里云迁移到七牛
@RequestMapping(value = "/alitoqiniu",method = RequestMethod.GET)
public void alitoqiniu(HttpServletRequest request,HttpServletResponse response) throws IOException {
List<OSSObjectSummary> sums = oss.listObjects("wzhphoto").getObjectSummaries();
   for (OSSObjectSummary s : sums) {
OSSObject a=oss.getObject(new GetObjectRequest("wzhphoto", s.getKey()));
       qiniu.upload(s.getKey(),a.getObjectContent());
   }
}
//七牛迁移到阿里云
@RequestMapping(value = "/qiniutoali",method = RequestMethod.GET)
public void qiniutoali(HttpServletRequest request,HttpServletResponse response) throws IOException {
BucketManager.FileListIterator fileListIterator = qiniu.listObject("wzhphoto");
   while (fileListIterator.hasNext()) {
//处理获取的file list结果
       FileInfo[] items = fileListIterator.next();
       for (FileInfo item : items) {
URL url=new URL(qiniu.download(item.key));
           InputStream is=url.openStream();
           oss.putObject("wzhphoto",item.key,is);
           //System.out.println(item.key);每个文件的名字
       }}
}

进度:

任务七

任务开始时间:2017.11.11

预计demo时间:2017.11.16

禅道:http://task.ptteng.com/zentao/my-task.htm

因为我的短信验证是测试号码,其他的号码无法访问,所以不能完整展示。







返回列表 返回列表
评论

    分享到