2011-05-20 104 views
0

大,StackOverflow的編輯改變了這個問題,我的標題用蹩腳的英語PHP文件拷貝有空格的文件名

我不能找到一種方法來複制一個文件,在文件名與PHP的空間。我試圖用"\ "替換空間,但它不起作用。

PHP的警告: 副本(/家/用戶/圖片/蜂窩\ 棉\羅\ 1.JPG): 未能打開流:沒有這樣的文件或目錄

回答

3

處所應不成問題。這可能是一個權限問題。 PHP是否有權限訪問該文件?

+0

是什麼,如果你不逃個錯誤信息,請更換空間帶反斜槓的空格? – Lasar 2011-05-20 10:33:33

0

做一個file_exists()拳頭:

$fileToCopy = '/home/user/images/Honeycomb Cotton Polo 1.jpg'; 
$target  = '/var/www/images/'; 

if (file_exists($fileToCopy)) { 
    if (is_readable($fileToCopy)) { 
     if (is_writeable(dirname($target))) { 
      copy($fileToCopy, $target); 
     } else { 
      die('You dont have permission to write into '.dirname($target)); 
     } 
    } else { 
     die('You dont have permission to read '.$fileToCopy); 
    } 
} else { 
    die('File '.$fileToCopy.' does not exist'); 
} 
+0

檢查一個文件是否存在是一件好事,但它不能解決存在並且不存在的文件的問題。 – Sylverdrag 2011-05-20 10:38:27

+0

如果找不到它,它不存在於您正在查看的路徑中! – powtac 2011-05-20 10:39:55

+1

不開玩笑。但是IT不回答這個問題。該OP試圖複製一個文件,並觸發「找不到文件」錯誤。顯然,OP認爲該文件存在於該位置。問題是「爲什麼找不到文件?」。在您收到錯誤消息說沒有找到文件後添加file_exists()並不能幫助回答問題。唯一會發生的是,OP不會收到原始錯誤信息,而是會收到您的自定義錯誤消息,告訴他幾乎是同樣的事情。 – Sylverdrag 2011-05-20 11:14:17

0

%20

你的情況替換空間: 副本(/家/用戶/圖片/蜂窩\%20Cotton \%20Polo \%201。 JPG)

0

%20

$file_path = '/home/user/images/Honeycomb Cotton Polo 1.jpg'; 
$file_path = preg_replace('/\s/i', '%20', $file_path); 

$new_path = '/home/user/images/Honeycomb-Cotton-Polo-1-copy.jpg'; 

copy($file_path, $new_path);