【发布时间】:2017-11-04 03:09:07
【问题描述】:
我想将文件 zip 提取到之前使用 PHP 的代码创建的目录中,但它不起作用。我认为这是权限问题,因为如果我手动创建该文件夹它可以工作,如果我从我的脚本创建它它就不起作用!
....
$filename = $_FILES["userfile"]["name"];
$source = $_FILES["userfile"]["tmp_name"];
$name = explode(".", $filename);
$target_path = "Apps\\" . $username . "\\" . $name[0];
if(move_uploaded_file($source, $target_path))
{
$zip = new ZipArchive();
$x = $zip->open($target_path);
if ($x === true)
{
$zip->extractTo("Apps\\".$username); <- ERROR ON THIS LINE
$zip->close();
}
....
这是错误:(警告:ZipArchive::extractTo():没有这样的文件或目录)
我该如何解决?
谢谢!
【问题讨论】:
-
检查您要提取的文件路径
-
我的猜测是 ziparchive 需要完整路径。如果开放有效,则路径应该存在。但是,您使用的是相对路径。试试
__DIR__."Apps\\".$username -
我不认为这是路径的问题,因为如果我这样写的话.. $zip->extractTo("Apps\folderCreatedManually");而不是 $zip->extractTo("Apps\\".$username);它工作!
-
是的,这是路径问题,错误消息也告诉路径问题