时间:2018-10-24
概述:压缩文件 上传文件
本示例可完成两种功能,一是上传文件,二是将上传的文件格式变为rar压缩文件格式,此功能使用了com组件,在PHP中新建wscript.shell,然后调用Winrar软件进行操作,请确保电脑中安装有Winrar软件:
先来看上传文件及转换部分代码,请保存为upload.php文件:
if ($_POST ['Submit'] != "") {
if (! empty ( $_FILES ['sourcefile'] [name] )) { //判断上传内容是否为空
if ($_FILES ['sourcefile'] ['error'] > 0) { //判断文件是否可以上传到服务器
echo "上传错误:";
switch ($_FILES ['sourcefile'] ['error']) {
case 1 :
echo "上传文件大小超出配置文件规定值";
break;
case 2 :
echo "上传文件大小超出表单中约定值";
break;
case 3 :
echo "上传文件不全";
break;
case 4 :
echo "没有上传文件";
break;
}
} else {
if (! is_dir ( "./upfile/" )) { //判断指定目录是否存在
mkdir ( "./upfile/" ); //创建目录
}
$path = './upfile/' . time () . strstr ( $_FILES ['sourcefile'] ['name'], '.' ); //定义上传文件名称和存储位置
if (is_uploaded_file ( $_FILES ['sourcefile'] ['tmp_name'] )) { //判断文件是否是HTPP POST上传
if (! move_uploaded_file ( $_FILES ['sourcefile'] ['tmp_name'], $path )) { //执行上传操作
echo "上传失败";
} else {
$path = realpath ( iconv ( "utf-8", "gb2312", $path ) ); //获取上传文件在服务器中的绝对路径
$len = strripos ( $path, "." ); //计算路径的长度
$file_path = substr ( $path, 0, $len ); //获取上传文件的路径名称
$obj = new com ( "wscript.shell" ); //实例化com类
$obj->run ( "winrar a -ep -df " . $file_path . ".rar" . " " . $path . "", 1, false ); //调用类中的方法,文件压缩
echo "文件:" . $_FILES ['sourcefile'] ['name'] . "上传成功!" . "
";
echo "大小:" . $_FILES ['sourcefile'] ['size'] . " 字节";
}
} else {
echo "上传文件" . $_FILES ['sourcefile'] ['name'] . "不合法!";
}
}
}
}
?>
以下是表单文件代码,请保存为index.html,在上传前添加了js对上传表单做简单判断:
PHP将上传文件转换成RAR文件function chkinput(form){
if(form.sourcefile.value==""){
alert("请选择要上传的文件!");
form.sourcefile.select();
return(false);
}
return(true);
}
选择上传文件: | class="inputcss" id="sourcefile" size="30"> | class="buttoncss" value="提交"> | ||