发表于: 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
因为我的短信验证是测试号码,其他的号码无法访问,所以不能完整展示。
评论