Mac OS X创建zip文件的权限


Mac OS X permissions to create a zip file

在互联网上搜索找到答案后,我决定直接寻求帮助。

我正在运行macosx10.7,PHP,Apache和MySQL。我试图让用户从表单中选择文件,并将其压缩并发送给个人。起初,PHP甚至无法创建文件。我发现了以下内容:

sudo chmod -R +a "_www allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" ~/Sites 

这让我可以创建一个文件。但是,当我尝试创建zip时,我会在末尾附加一些未知的扩展名,并且正在创建2个文件。所以我不知道出了什么问题,我想我只需要打开目录并强行将其重命名回*.zip就可以找到文件。我手动重命名后检查了文件,看起来很好。

我得到以下错误:

Warning: rename(tmp/RosenData082112-1102.zip.ohoKRw,RosenData082112-1102.zip) [function.rename]: Permission denied in /Users/mmcri/Sites/rosenlab/download.php on line 42
ls -le reveals this to the files:
-rw-------+ 1 _www  staff  43775 Aug 21 11:02 RosenData082112-1102.zip.1qJUE4
 0: user:_www inherited allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
-rw-------+ 1 _www  staff  43775 Aug 21 11:02 RosenData082112-1102.zip.ohoKRw
 0: user:_www inherited allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity

以下是制作zip文件的PHP代码部分:

if(extension_loaded('zip'))
{ 
   $zip = new ZipArchive();
   $zipname = "RosenData".date("mdy-Hi").".zip";
   if($zip->open($direct.$zipname, ZIPARCHIVE::CREATE) === TRUE)
   {
       foreach($filelist as $file)
            $zip->addFile($path.$file,$file) or die ("Error adding file: $file");
       $zip->close();
}
 // Random stuff below
}

非常感谢您的帮助。

谢谢。

您有权限在Mac中写入该文件夹吗?

尝试使用fopen而不是ZipArchive。