function download($file_dir,$file_name)
//参数说明:
//file_dir:文件所在目录
//file_name:文件名
{
$file_dir=chop($file_dir);//去掉路径中多余的空格 http://www.w3school.com.cn/php/func_string_chop.asp
//得出要下载的文件的路径
if($file_dir!="")
{
$file_path=$file_dir;
if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir))!="/")
$file_path.="/";
$file_path.=$file_name;
}
else
$file_path=$file_name;
//判断要下载的文件是否存在
if(!file_exists($file_path))
{
echo "对不起,你要下载的文件不存在。";
returnfalse;
}
$file_size=filesize($file_path);
header("Content-type:application/octet-stream");//file流
header("Accept-Ranges:bytes");
header("Accept-Length:$file_size");//提示要接受的文件大小
header("Content-Disposition:attachment;filename=".$file_name);提示终端浏览器下载操作
$fp=fopen($file_path,"r");
$buffer_size=1024;
$cur_pos=0;
while(!feof($fp)&&$file_size-$cur_pos>$buffer_size)
{
$buffer=fread($fp,$buffer_size);
echo $buffer;
$cur_pos+=$buffer_size;
}
$buffer=fread($fp,$file_size-$cur_pos);
echo $buffer;
fclose($fp);
return true;
}
zip -q -r -P password zipfile.zip sourcefiles.txt
password 是加密密码
zipfile.zip 是生成的压缩文件
sourcefiles.txt 是被压缩的文件
zip [参数] <压缩包> <源文件>
使用zip格式打包文件
-r 递归,将指定目录下的所有文件和子目录一并处理
-S 包含系统和隐藏文件
-y 直接保存符号连接,而非该连接所指向的文件
-X 不保存额外的文件属性
-m 将文件压缩并加入压缩文件后,删除源文件
-<压缩级别> 1~9,数字越大,压缩率越高
-F 尝试修复已损坏的压缩文件
-T 检查备份文件内的每个文件是否正确无误
-q 不显示指令执行过程
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件
-u 更新压缩包内文件
-f 更新压缩包内文件。如果符合条件的文件没有包含在压缩包中,则压缩后添加
-$ 保存第一个被压缩文件所在磁盘的卷标
-j 只保存文件名称及其内容
-D 压缩文件内不建立目录名称
-i <表达式> 压缩目录时,只压缩符合条件的文件
-x <表达式> 排除符合条件的文件
-n <文件名后缀> 排除指定文件名后缀的文件
-b <缓存路径> 指定临时文件目录
-d <表达式> 从压缩文件内删除指定的文件
-t <日期时间> 把压缩文件的日期设成指定的日期
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同
-A 调整可执行的自动解压缩文件
-c 替每个被压缩的文件加上注释
-z 替压缩文件加上注释
-k 使用MS-DOS兼容格式的文件名称。
-l 压缩文件时,把LF字符置换成LF+CR字符。
-ll 压缩文件时,把LF+CR字符置换成LF字符。
举例:
将/home/B linux /html/ 这个目录下所有文件和文件夹打包为当前目录下的html.zip
zip -q -r html.zip /home/B linux /html
unzip -q -n -P password zipfile.zip -d /home/admpub/
unzip [参数] <压缩文件> [压缩包中将被释放的文件]
解压zip压缩包文件
-P <密码> zip压缩包的密码
-d <路径> 指定解压路径
-n 解压缩时不覆盖原有文件
-f 覆盖原有文件
-o 不经询问,直接覆盖原有文件
-u 覆盖原有文件,并将压缩文件中的其他文件解压缩到目录中
-l 显示压缩文件内所包含的文件
-t 检查压缩文件是否正确
-z 显示压缩包注释
-Z unzip -Z等于执行zipinfo指令
-j 不处理压缩文件中原有的目录路径
-C 压缩文件中的文件名称区分大小写
-L 将压缩文件中的全部文件名改为小写
-s 将文件名中的空格转换下划线
-X 解压缩时保留文件原来的UID/GID
-q 执行时不显示任何信息
-v 执行是时显示详细的信息
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
-a 对文本文件进行必要的字符转换
-b 不要对文本文件进行字符转换
-x <表达式> 处理里排除压缩包中的指定文件
-M 将输出结果送到more程序处理