Uber-upload的使用
时间:2007-05-23 来源:yangzhx
其有两个部分,一是核心的上传程序,一般放在cgi-bin目录下(这个目录在APACHE中设置)。有以下几个文件:uu_default_config.pm uu_lib.pm uu_upload.pl uu_ini_status.pl
uu_default_config.pm 上传的配置文件,把所的配置信息写在一个数组中,有以下的配置选项:
config_file_name=> 'uu_default_config', |
2. PHP代码分析
这些文件放到可以执行PHP的路径下,位置任意,有以下几个文件
uu_conlib.php:配置文件,相关的参数有以下: |
uu_file_upload.php,进行文件上传文件,包括了选择上传文件的表单显示,上传过程中的进度条和状态显示等,只对部分信息进行了中文化,而没有对代码进行修改,分析放到以后吧。
uu_finished.php,上传完成后显示的信息,这个文件也在PL的配置文件中出现过,当上传操作完成后,重定向到此。为了能够取得上传以后的文件路径,对源代码进行了小的改动。
① 新建了一个变量$file_list_up ,存放上传文件的路径名+文件名
② L86,L89,L109加入 $file_list_up .= "$uploaded_path$uploaded_file_name".'\n';,变量$uploaded_path与$uploaded_file_name分别是上传文件的路径和文件名(注 连接\n是为了加TEXTAREA的而进行的修改,其他信息可以根据需要进行修改)
③ 加入一个SCRIPT函数如下,把文件路径写入到主窗口中
function writeForm( msg){ |
④ 加入一个按钮如下,把得到的文件信息$file_list_up当做变量传到JS函数writeForm中去。
<input type="button" value="直接写入" onClick="javascript:return writeForm('<? print $file_list_up; ?>');">
3. 动态改变上传的路径
为了更好的时行备份,可以动态改变上传文件的路径,其实只要修改配置文件中的相关内容就可以了,如果手动改,非得麻烦的吐了不可,写了一个SHELL脚本,不是很好,因为对SHELL的学习也是刚刚开始,将就着用了。
#!/bin/bash |
4. 几点说明
① JS是很烦人的,那个打开上传窗口的按钮可以做成这样
<input type="button" value="上传文件" onclick="javascript:openwinx('/fup/uu_file_upload.php','uploads','500','300')">
② Openwinx函数中第二个函数是打开窗口的名字,当再打开一个窗口与之同名时,只是打开一个窗口,会把原有内容用新的URL进行刷新
③ 在对textarea表单的内容进行写入时,老是不能换行,还是小超提醒,把uu_fiished.php中的 $file_list_up .= "$uploaded_path$uploaded_file_name\r\n';修改为$file_list_up .= "$uploaded_path$uploaded_file_name”.’\r\n',FT一个!
④ 有些内容用中文替换后,网页显示为乱码,没关系,用UEDIT或用iconv命令转换一下编码再进行编辑就可以了。