【发布时间】:2012-12-10 09:55:29
【问题描述】:
我在这里只看到一个问题,但它没有回答我的问题。我正在运行一个典型的 LAMP 服务器,该服务器具有最新的 PHP 5 和 MYSQL 5 以及 Redhat Linux。
我需要找到一个仅限 PHP 的解决方案,因为我的主机不允许我使用 shell。
这是我的代码,它从 vBulletin 上传中提取未加密的 ZIP 到另一个目录:
if ($_GET['add'] == TRUE){
$zip = new ZipArchive;
$res = $zip->open($SOURCE FOLDER);
if ($res === TRUE) {
$zip->extractTo('$DESTINATION FOLDER/');
$zip->close();
echo 'File has been added to the library successfuly';
//Add a flag to that file to indicate it has already been added to the library.
mysql_query("UPDATE attachment SET library = 1 WHERE filedataid='$fileid'");
} else {
echo 'A uncompression or file error has occured';
}}
肯定有某种方法可以只使用 PHP 来做到这一点!谢谢。
更新:我的主机通知我服务器上安装了 gzip,但没有安装 7-Zip。我也在研究 shell 访问。
【问题讨论】:
-
当你说shell不是一个选项时,你的意思是你不能调用system(),还是你的意思是你不能用shell登录服务器。
-
我无法进入服务器,我目前正在向我的主机询问 system() 访问权限。
-
好的,根据你的php是否允许调用system(),你也可以检查你的主机是否安装了unzip可执行文件。请参阅我的答案中的编辑。
-
好的,显然我应该能够从 PHP 调用 Gzip,如果我正式请求它,我实际上可以获得 SSH 访问权限。
-
很好,但是 gzip 不处理 .zip 格式,它处理 .gz 格式。但是如果您获得 SSH 访问权限,您应该可以自己安装 7zip。或
unzip,如果尚未安装。
标签: php passwords redhat unzip