2009年(2)
分类: 系统运维
2009-03-24 11:45:05
最近用Redhat AS5.0+apache+php搭建基于web的ftp管理系统。搭建系统目的使当上传文件的时候能自动加入文件名、作者、摘要、关键字等信息,因为增加了文档的关键字、摘要等信息在web界面上管理ftp更加方便。
根据要求,ftp系统主要管理mht格式的文档,因为公司有很多方案、成功案例都是word的,不过word文档太大,下载不方便,所以要求大家把word文档转为mht,然后上传。
整个系统ftp服务和web服务是分离的,分别位于不同的两台服务器(我们生产服务器,所以用服务器比较浪费)上。上传文档到ftp的过程很方便,问题主要集中在下载时候,几经努力终于搞定。
首先控制下载word、ppt、excel时弹出对话框。
主要通过设置header头实现:
//设定二进制文件流
|
//弹出对话框时显示文件名,并且提供打开、保存、取消。注意attachment和inline是相对的,attachment弹出窗口,inline则直接打开。甚至还可以添加force-download等选项。
|
//下载文件
|
其次控制mht文件下载。mht文件要在页面中直接打开,要用到上文的inline参数
简单的文本格式的mht文件直接可以在网页中显示,以下配置针对带有图表的mht文件显示。
mht文件不是apache默认支持的文件格式,无论在window下或者linux下。在windows下面通过配置apache安装路径下面的conf/mime.types,在message/rfc822后面添加mht,重启apache即可,这在好多帖子里都有详细的叙述。不过用windows作为服务器的人太少了。查了很多结果大都是windows下的配置。无奈挨个查看/etc/httpd/conf/下面的所有文件。
在httpd.conf文件中有这样一句话:
409 # TypesConfig describes where the mime.types file (or equivalent) is
410 # to be found.
411 #
412 TypesConfig /etc/mime.types
马上寻找/etc/mime.types文件,找到rfc822在后面添加mht,然后重启apache,唉,怪了,此时用rfc822来解释mht文件,怎么还是不行?重启linux,还是不行,呜呜~~
然后在网页主目录中上传一个mht文档,点开以后发现文件名是都变成了数字,并用%隔开,估计经过rfc822的格式压缩过了。此时又想到了header的Content-Type。
%以下是打开mht文件的代码:
|
至此,Linux+apache+php的ftp文件管理系统就可以工作了~~
哈哈,平生第一篇blog。