2013-03-15 66 views
0

我有一個簡單但令人難以置信的問題。如何複製子目錄/文件夾中的內容?

我有一個PHP代碼創建兩個directorires:

mkdir("uploads", 0777); // Create Folder 
mkdir("uploads/input", 0777); // Create Folder 

和上面的代碼創建的文件夾說。然後我有另一個PHP代碼複製圖像文件到上傳/輸入和圖像被複制。

同樣,我有一個upload.php的PHP代碼將文件複製到Dropbox的:

$dirtocopy = '/uploads/output/'; 
$dropboxdir = '/Public/backupdir/'; 

當我運行Dropbox的框代碼它不會複製/上傳/輸出/和error_log中給出了我下面的:

PHP Warning: opendir(/uploads/output/) [<a href='function.opendir'>function.opendir</a>]: failed to open dir: No such file or directory in /home5/../upload.php on line 9 

雖然當我改變父$dirtocopy = '/uploads/output/';$dirtocopy = './';它複製所有文件,除了文件夾!

我覺得我的問題在於$dirtocopy

謝謝。

+2

相對路徑不應該以'/'開頭,或者以'/'開始時它必須有點(s) – 2013-03-15 20:18:17

+0

'/ uploads/output'相當於'c:\ uploads \ output'。如果你有'上傳/輸出'(不帶前導斜槓),它會是'c:\ where \ your \ script \ execution \ uploads \ output'。 – 2013-03-15 20:20:44

+0

我試過它部分工作,但複製上傳/輸出中的文件,但不復制**文件夾及其內容**在上傳/輸出內 – maltadolls 2013-03-15 20:32:01

回答

0

變化

$dirtocopy = '/uploads/output/'; 

$dirtocopy = 'uploads/output/'; 

,它應該工作?

+0

我試過了,但它再次複製上傳/輸出中的文件,但不復制上傳/輸出中的文件夾。 – maltadolls 2013-03-15 20:26:08

+0

error_log告訴我_'File'uploads/output/yahoo'不存在或不可讀。'當我手動將權限更改爲777內的所有文件和目錄時。 – maltadolls 2013-03-15 21:01:46

0

你只說你想移動上傳的圖像,而不是保存在文件夾中的圖像(我得到這個印象)。

您有幾個選項,一個是循環遍歷/ uploads/input中的目錄名稱,在輸出文件夾中動態創建一個新目錄,然後複製這些文件。如果需要(聽起來像是這樣),然後複製/ uploads/input中的文件。

但這很複雜,而且您正在使用用戶上傳的文件。你採取了哪些措施來防止任何安全問題?你爲什麼要處理文件夾和圖片?

您應該對通過代碼提交的內容有100%的控制權,以避免不一致,並且在涉及到此問題時可以讓自己更輕鬆。我建議您充分了解您正在嘗試做的事情,然後可能會向我們發送更多代碼。

+0

如何修改 - $ dirtocopy ='/ uploads/output /';包括文件夾,比如說$ dirtocopy ='/ uploads/output/folder1'; $ dirtocopy ='/ uploads/output/folder2'; $ dirtocopy ='/ uploads/output/folder3'; – maltadolls 2013-03-15 21:06:52

相關問題