我正在開發一個網絡備份服務的一部分,該部分允許用戶下載一個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