发表于: 2017-10-02 23:25:14

2 822



今天完成的任务

1.使用三种方式上传文件
这三种方式分别以流的方式上传文件、使用file.Transto上传文件、使用spring mvc提供的方式上传文件。
其实spring mvc上传文件就是对file.Transto方法的封装。这部分是参考的外门的凡尘师兄的日报写的
这里我就只介绍Spring mvc上传文件:
1)先在pom.xml添加如下jar包:
2)然后是在serlvet.xml中添加对mutilpart的支持
3)然后是控制器方法:
4)对应的jsp:


5)代码准备好了,打算用jetty测试的时候,蹦出一大推异常...花了时间去解决异常,总结原因有2个:
A.是我在加入上面的代码之前看了一些依赖树,发现有很多红线,也就是依赖冲突,自己把发生冲突的jar包版本改了,结果编译时报各种ClassNotFound异常;

B.是因为前面以外部依赖方式添加的短信和邮箱的jar包,在编译时找不到这些jar包,后面在网上找到把非maven中心库资源部署到maven的本地资源库的方法,然后在pom.xml中直接引用就解决编译时找不到jar的问题了。


在这里记录一下非maven中心库资源部署到maven的本地资源库的方法:
a.打开命令行,进入jar包所在路径
b.键入如下命令(以阿里的SDK为例)
mvn install:install-file -Dfile=aliyun-java-sdk-core-3.2.3.jar -DgroupId=aliyun-java-sdk -DartifactId=core -Dversion=3.2.3 -Dpackaging=jar
然后就会在maven的本地资源库自动生成多级目录(aliyun-java-sdk/core/3.2.3/aliyun-java-sdk-core-3.2.3.jar)以及指向这个jar包的坐标:
然后就可以在pom.xml中引用这个jar包了:


6)编译异常解决以后,上传文件的页面展示:

测试是成功的,但是这种方式不能实现异步上传图片,所以还是要用ajax...



2.完成七牛云上传文件的demo
七牛云比容联、阿里云好的一点是,它的sdk可以在maven的中心库找到,不用向上面那样,用install命令把下载的jar包部署到maven的本地资源库。
demo是参照七牛云的demo写的,把access_key、secret_key、bucket换成自己的。 
1)简单的上传demo
这里只贴上传到七牛云服务器的key和要上传的图片路径:
代码运行结果:
上面控制台输出的两个key中,hash是图片内容hash值,key是图片保存在七牛云服务器上的名字。
然后到七牛云服务器上验证是否上传成功,如下图:
可以看到,上传是成功的。点击上图右边的“眼睛”可以查看图片的外链,可以把这个外链保存到数据库汇总。
2)带回调的上传demo
上面的外链是通过查看七牛云网站存储空间得到的,下面通过在代码里配置使用回调取得图片的外链。
就是在上传凭证里加上key,过期时间,callbackUrl,callbackBody四个参数就可以了:
在这里我没有设置key,七牛云默认把图片内容的hash值作为key:


遇到的问题

七牛云的callbackUrl到底指的什么?原先我以为是图片上传到七牛云后返回的图片外链,但上面的结果好像不是这么回事,师兄知道是什么意思吗?


收获
1.了解使用Spring上传文件的方法
2.会用七牛云的SDK了

3.还会把非maven中心库的jar包部署到本地maven资源库,然后直接在pom.xml中引用


明天的计划
1.用Spring保存七牛云的账号信息,然后重新把七牛云上传文件写成一个工具类,入参为key和filePath。

2.前端大佬说他不用ajax传图片,他用其他框架、插件。但我自己找到一个demo了,感觉挺靠谱的,但还没自己做,明天把demo做出来


进度

步骤2

任务开始时间 2017.9.25

预计提交时间 2017.10.2

已延期

禅道  http://task.ptteng.com/zentao/project-task.html



返回列表 返回列表
评论

    分享到