我正在开发一个网络备份服务的一部分,该部分允许用户下载一个zip文件,其中包含他们从已备份列表中选择的文件。通过shell_exec在PHP中压缩文件:问题与路径
压缩过程是通过shell_exec命令完成的。为了这个工作,我给了zip命令apache用户无密码的sudo权限。
我的问题是,因为我不能对包含用户备份文件的文件夹执行“sudo cd/path/to/user/files”,我需要指定要压缩文件的完整绝对路径,然后进入我不想要的zip文件。
这里就是我的意思是:
用户, 'TEST1' 有自己的文件备份其中存储如下
/家庭/备份/ test1的/我的图片/ pic1.jpg
/家庭/备份/ TEST1 /我的图片/ pic2.jpg
/家庭/备份/ test1的/我的图片/ pic3.jpg
/home/backups/test1/hello.txt
/家庭/备份/ TEST1 /音乐/乐队/歌曲.mp3
当这些文件被压缩时,它们保留完整的路径但我只是想让它显示:
我的图片/ pic1.jpg
我的图片/ pic2.jpg
我的图片/ pic3.jpg
hello.txt的
音乐/乐队/ Song.mp3的
有没有办法告诉zip截断路径,或为每个文件指定一个自定义路径?
或者有什么方法可以将工作目录更改为用户的根备份文件夹,以便我可以简单地指定相关文件路径。
感谢您的阅读,希望您有这么远,这一切都有道理!
PHP使用apache用户无法访问用户文件的目录。我使用“sudo zip ...”来执行压缩,但不能完成“sudo cd/path/to/folder”。 – Nick 2009-05-05 15:15:50