Windowsファイルサーバー(UNCパス)のPHPのファイルの名前を変更する
-
28-10-2019 - |
質問
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年前です...しかし、誰も有効な答えを言っていません、そして他の人(私のような)はこの質問を見つけるかもしれません
所属していません StackOverflow