1

PHPで、Windowsファイルサーバー上のファイルの名前を「\ myserver \ folder1 \ folder2\myfile.pdf」から「\myserver\ folder1 \ folder2 \ OLD \ myfile.pdf」に変更(移動/コピー)したい

(すべてのフォルダーは既に存在し、宛先ファイルは存在しません)

私はこれを試しました:

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を実行する必要があると思いますか?また?

4

2 に答える 2

0

PHPは、Webサーバーが実行されているユーザーと同じように実行されます。そのフォルダに対するアクセス許可を、そのユーザーアカウントに付与する必要があります。

于 2011-02-02T14:11:09.960 に答える
0

コピーを使用しないでください...代わりにmove_uploadedを使用してください

これは、フォームから画像を取得する1つの例です。

$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をオフに変更します

PDええ、私は知っています、この投稿は5年前です...しかし、誰も有効な答えを言っておらず、他の人(私のような)がこの質問を見つけるかもしれません

于 2016-04-19T08:26:51.000 に答える