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信息;

原创粉丝点击