1,完成文件上传,下载:
文件上传
1)前端文件上传采用ajaxfileUpload插件提交数据,之前有试过直接使用ajax进行提交但这个方法好像行所以不想浪费太多时间
直接使用ajaxfileUpload,另外也看到了使用formData()[0] 这个方法好像是需要浏览器h5 支持,所以也没有去研究;
2)后端使用springmvc+commons-uploadfile 的CommonsMultipartFile进行流处理
3)上传的流程
1.3.1 ajax 提交文件名称,服务器分配文件位置,及文件名称;这个的好处是以后可以扩展断点上传
1.3.2 ajax 提交文件流,服务器写入磁盘及更新附件表信息
文件下载:
1)文件下载是根据名称进行取,url 中必须带上服务端分配的唯一名称;
2)下载文件时,服务器需要对此文件进行校验,此文件是否公开,如果公开则不需要登录就可以下载,如果不公开则需要用户登录并且
与此文件同一个公司方可下载
2,将image类型加入到form表单中;单个文件主要考虑到有时间用户只需要设置一个头像,所以是必须要有的;
1)实现功能中的坑,
2.1.1 在图片显示时,中间有数据关联(文件地址关联)但这文件的关联没有写并且也没有考虑得很清楚,
第一,理解错误了,写错了一次;
第二,代码写了但没有考虑到文件地址那里来?所以又回头定了一个配置文件服务器的配置:1,获取文件的domain和存储路径;
2,这个地方修改了,那么上传文件保存的代码也得修改了。心累...
2.1.2 在查询图片时数据关联是放在dataproxy层中的,但考虑这样由dataproxy调用数据关联,然后数据关联又调用dataproxy
这样不科学,所以将这个调用下移到action 层
2)在文件上传按钮做事件触发时,使用了change 监听,但发现这货只能触发一次;网上找了此答案说可以使用live 替换,
但后面看jquey 1.9已经把这个玩意删除了,所以最终使用了on 进行监听
3,总结:
1,很多时候整体的代码需要好好规划,写功能前一定要考虑清楚;写的过程中可能会赶时间,导致一些功能放在那里;这个是可以有可能的
,但是遗留下来没有完成的功能要到什么时候实现呢?这是这未知数。所以要尽量去完成,完成不了就写多些备注
2,写代码时思路一定要清晰,不能被赶时间影响到了;这样可以保证质量
4,扩展:
1)晚上找了些时间安装了Intellij IDEA 这个IDE 在试用的期间发现还是有定的困难,所以要找点教程来看看;
地址:http://www.phperz.com/article/15/0923/159055.html
破解方法:
http://idea.lanyus.com/
http://blog.csdn.net/gnail_oug/article/details/53977118
文件上传
1)前端文件上传采用ajaxfileUpload插件提交数据,之前有试过直接使用ajax进行提交但这个方法好像行所以不想浪费太多时间
直接使用ajaxfileUpload,另外也看到了使用formData()[0] 这个方法好像是需要浏览器h5 支持,所以也没有去研究;
2)后端使用springmvc+commons-uploadfile 的CommonsMultipartFile进行流处理
3)上传的流程
1.3.1 ajax 提交文件名称,服务器分配文件位置,及文件名称;这个的好处是以后可以扩展断点上传
1.3.2 ajax 提交文件流,服务器写入磁盘及更新附件表信息
文件下载:
1)文件下载是根据名称进行取,url 中必须带上服务端分配的唯一名称;
2)下载文件时,服务器需要对此文件进行校验,此文件是否公开,如果公开则不需要登录就可以下载,如果不公开则需要用户登录并且
与此文件同一个公司方可下载
2,将image类型加入到form表单中;单个文件主要考虑到有时间用户只需要设置一个头像,所以是必须要有的;
1)实现功能中的坑,
2.1.1 在图片显示时,中间有数据关联(文件地址关联)但这文件的关联没有写并且也没有考虑得很清楚,
第一,理解错误了,写错了一次;
第二,代码写了但没有考虑到文件地址那里来?所以又回头定了一个配置文件服务器的配置:1,获取文件的domain和存储路径;
2,这个地方修改了,那么上传文件保存的代码也得修改了。心累...
2.1.2 在查询图片时数据关联是放在dataproxy层中的,但考虑这样由dataproxy调用数据关联,然后数据关联又调用dataproxy
这样不科学,所以将这个调用下移到action 层
2)在文件上传按钮做事件触发时,使用了change 监听,但发现这货只能触发一次;网上找了此答案说可以使用live 替换,
但后面看jquey 1.9已经把这个玩意删除了,所以最终使用了on 进行监听
3,总结:
1,很多时候整体的代码需要好好规划,写功能前一定要考虑清楚;写的过程中可能会赶时间,导致一些功能放在那里;这个是可以有可能的
,但是遗留下来没有完成的功能要到什么时候实现呢?这是这未知数。所以要尽量去完成,完成不了就写多些备注
2,写代码时思路一定要清晰,不能被赶时间影响到了;这样可以保证质量
4,扩展:
1)晚上找了些时间安装了Intellij IDEA 这个IDE 在试用的期间发现还是有定的困难,所以要找点教程来看看;
地址:http://www.phperz.com/article/15/0923/159055.html
破解方法:
http://idea.lanyus.com/
http://blog.csdn.net/gnail_oug/article/details/53977118