FTP大附件上传解决方案
来源:互联网 发布:数据加密保密性 编辑:程序博客网 时间:2024/05/17 20:40
在web工程中,大文件的上传首选就是FTP上传,效率高。因此,本人总结下在项目中采用的FTP上传的解决方法,供大家参考。
1.FTP客户端选择;FTP上传必须有客户端软件,在web中常采用嵌入jsp的页面控件,初次使用需要自动安装在IE中(网易,腾讯就是这种模式)------常用的控件都是用C++做的,java的Applet因为客户端必须安装jre,所有用的不多。
2.FTP上传路径与用户的配置;一般情况下,大文件必然非常的占硬盘空间,一个磁盘满后必定要存另一个磁盘,所有每个磁盘都要配置一个FTP用户(FTP中用户控制这对应的上传目录),而这个配置信息是写在数据库中的,可以动态的修改和添加;比如我们当前系统中有张表单独的存储FTP和对应的存储盘信息:
上传标识 绝对路径 在线文件夹 FTP参数 是否有效
uploadPathOne D:\\ PIC .......... 0
uploadPathTwo E:\\SMGContent PIC .......... 1
。。。。。。
这样动态的配置在数据库,新上传文件时候先获得上传到的在线文件夹(不同类型文件存在不同文件夹,每个文件夹的最大存储有限制,可以动态创建),然后得到对应的FTP信息,值传入页面给FTP,OK,可以顺利上传了。
如果是第二次上传覆盖文件就要注意了,先判断需要上传的文件在数据库是否存在(这个对应特殊的要求,比如一个节目对应一个数字化文件,重复上传就要判断这个节目的数字化文件是否存在),存在就拿到它存放的绝对路径和对应盘符上传需要的FTP参数(很容易理解,上传了D盘和上传了F盘的FTP用户肯定不同,所有一个盘对应一个FTP用户),可以删除文件再上传,也可以直接上传覆盖(这就要求上传时命名规则相同,会覆盖)。
3.文件删除
其实文件删除就是文件路径的拼装,要拼装为绝对路径,这个一般都没有问题
4.文件试听
呵呵。。。。这个其实和删除一样,都是拼装路径;不过在我们的项目中是这样处理的:
从上面第2点可以看出,每个上传目录我们都做了上传标识 ,比如uploadPathOne代表 D:\\SMGContent ,uploadPathOne代表 E:\\SMGContent ,我们同时把这个配置信息都配置在了Tomcat的\conf\Catalina\localhost下,比如:uploadPathOne.xml
<Context path="/uploadPathOne" docBase="D:\smgContent">
</Context>
比如:uploadPathTwo.xml
<Context path="/uploadPathTwo" docBase="E:\smgContent">
</Context>
这样Tomcat已启动就自动读取这些xml,把对应上传标识符uploadPathOne和对应的盘映射起来了;拼装路径时候就可以这样拼装:
http://localhost:8080/上传标识符/目录名/文件名
这样就可以下载倒文件了,自然可以通过页面的播放器视听了。
但是注意了,每配置一个硬盘,就要配置一个上传标识对应的xml,同时数据库添加一个记录。
比如:配置了F盘,新的上传标识为uploadPathThree,这时候现在tomcat中添加uploadPathTwo。xml,然后在数据库中添加对应的磁盘和FTP信息;
- FTP大附件上传解决方案
- FTP附件上传与下载
- 大附件上传 服务器配置
- 【NeatUpload】大附件上传配置文件
- phpwind远程FTP附件,上传图片出错
- 动态多附件上传----经典解决方案
- Wordpress中文名附件上传问题的解决方案
- asp.net大附件上传问题
- asp.net大附件上传问题
- asp.net大附件上传问题
- C# 上传大附件
- PHP远程附件上传,php ftp类详解
- 大文件上传之FTP文件上传
- SERVER 2003不能上传大附件、无法下载超过4M的附件、大附件上传超时
- SWFUpload+COS 上传组件+servelet 实现大附件上传
- SWFUpload+COS 上传组件+servelet 实现大附件上传
- SWFUpload+COS 上传组件+servelet 实现大附件上传
- IE8浏览器无法上传附件的解决方案以及相关兼容问题
- linux md5sum的使用
- 使用ffmpeg进行视频文件转换成FLV整理
- MyEclipse 下配置WebLogic10 服务器
- 关于Linux中的链接
- webservice soap hessian
- FTP大附件上传解决方案
- POJ 1745 Divisibility
- Codeforces Beta Round #35 (Div. 2) E. Parade(成段更新)
- Android Bander设计与实现 - 设计篇
- jdk5 多线程
- bzoj 2298: [HAOI2011]problem a
- JS日期操作
- 我有想法
- Gridview的stretchMode详解附自动宽度