thumbs.db搞砸了我的上传例程

时间:2010-03-23 00:24:40

标签: php

上传zip存档时出现以下错误。

Warning: ZipArchive::extractTo(C:\xampplite\htdocs\testsite/wp-content/themes/mytheme//styles\mytheme/Thumbs.db) [ziparchive.extractto]: failed to open stream: Permission denied in C:\xampplite\htdocs\testsite\wp-content\themes\mythem\uploader.php on line 17

我无法想象的是,我没有在zip存档或创建的目标文件夹中看到thumbs.db文件(上传仍然处理,我只是得到这些错误)。

该功能如下,第17行被评论......

function openZip($file_to_open) { 
    global $target;  
    $zip = new ZipArchive();  
    $x = $zip->open($file_to_open);  
    if($x === true) {  
        $zip->extractTo($target);  //this is line 17
        $zip->close();  

        unlink($file_to_open);  
    } else {  
        die("There was a problem. Please try again!");  
    }  
}  

3 个答案:

答案 0 :(得分:1)

看起来只是一个警告。我会忽略它。我打赌当它试图覆盖提取目录中的thumbs.db文件时会发生错误。

或者,使用getNameIndex获取文件列表,过滤thumbs.db并使用extractTo的第二个参数过滤文件。

http://www.php.net/manual/en/function.ziparchive-getnameindex.php http://www.php.net/manual/en/function.ziparchive-extractto.php

答案 1 :(得分:0)

这条道路全都搞砸了 C:\ Xampplite文件\ htdocs中\测试网站/可湿性粉剂内容/主题/ mytheme的//样式\ mytheme的/ thumbs.db的

我想这可能是Windows问题。

你能在第17行上面加一行说

echo $file_to_open; exit; 

告诉我们您尝试上传文件时的内容?

答案 2 :(得分:0)

假设损坏的路径有效,那么目标目录中有一个thumbs.db(默认情况下是隐藏文件),和/或您的脚本没有写入该文件/目录的权限。当文件被另一个进程使用时,Windows在吐出“权限被拒绝”时非常大,而不是说“正在使用进程XXX”。