質問

PHPでは、Windowsファイルサーバー上のファイルを変更(移動/コピー)します。

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

私はこれを試しました:

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

役に立ちましたか?

解決

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

他のヒント

コピーを使用しないでください...代わりに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年前です...しかし、誰も有効な答えを言っていません、そして他の人(私のような)はこの質問を見つけるかもしれません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top