2011-02-02 44 views
1

在PHP中,我想重命名(移動/複製)Windows文件服務器上的文件: 「\ myserver \ folder1 \ folder2 \ myfile.pdf」 到 「\ MYSERVER \文件夾1 \文件夾2 \ OLD \ myfile.pdf」在一個Windows文件服務器(unc路徑)在php中重命名文件

(所有文件夾已經存在,目標文件不存在)

我嘗試這樣做:

copy("\\\\myserver\\folder1\\folder2\\myfile.pdf", "\\\\myserver\\folder1\\folder2\\OLD\\myfile.pdf"); 

copy("//myserver/folder1/folder2/myfile.pdf", "//myserver/folder1/folder2/OLD/myfile.pdf"); 

我收到:

[function.copy]: failed to open stream: Permission denied 

我在/登錄的用戶有權重命名/移動/刪除/複製到共享/文件夾的計算機。

我猜我需要以某種方式給php權限,或者運行php作爲我的用戶?要麼?

回答

0

PHP將以您的Web服務器運行的任何用戶身份運行。您需要將該文件夾的權限授予任何用戶帳戶。

+0

這是有道理的,但我可以改變Apache的Windows服務作爲不同於'本地系統'的用戶(並且該用戶有權限),或者? – 2011-02-02 14:20:44

0

不使用複製...使用move_uploaded代替

這是一個例子,從一個形式獲取圖像:

$img = 'sample.jpg; 
$path = '//nameofyourpcinyournetwork/sharedfolder/folderyoulike/'; 
$pathwithimg = $path.$img; 
if (!is_dir($path)) { 
    mkdir($path, 0644, TRUE); // TRUE for make it recursive 
} 
if (file_exists($pathwithimg)) { 
unlink($pathwithimg); 
move_uploaded_file($_FILES["file"]["tmp_name"], $pathwithimg); 
chmod($pathwithimg, 0644); 
} 

變化safe_mod爲關,如果你擁有了它

P.D.是的,我知道,這個職位是5年前...但沒有人說有效的答案和其他人(像我一樣)可能會發現這個問題