phpの写真のアップロードについて質問です。 <結果> Warning: move_uploaded_file(files/20250720074735-test.jpg): failed to open stream: 許可がありません in /opt/lampp/htdocs/4sho/photoalbum.php on line 27 Warning: move_uploaded_file(): Unable to move '/opt/lampp/temp/phpf6y28w' to 'files/20250720074735-test.jpg' in /opt/lampp/htdocs/4sho/photoalbum.php on line 27 <?php header("Content-Type: text/html; charset=UTF-8"); //---------- // フォトアルバム //---------- // 変数の初期化 $updir = "files/"; $savefile = "photoalbum.txt"; $log = array(); // ログファイルの読み込み if (file_exists($savefile)) { $log = file( $savefile ); } // ファイルがアップロードされたか? if (is_uploaded_file($_FILES['photo']['tmp_name'])) { // アップロードされたファイルのパラメータを得る $tmp = $_FILES['photo']['tmp_name']; $name = $_FILES['photo']['name']; // 保存するファイル名を決める $head = date("YmdHis"); // 重複しないように日付をヘッダにする $fname = $updir.$head."-".urlencode(basename($name)); // 一行メモを保存するための処理 $memo = $_POST['memo']; $memo = str_replace("\r", "", $memo); $memo = str_replace("¥n", "", $memo); $memo = str_replace("\t", "", $memo); // 一時領域から指定フォルダへファイルを移動する if (move_uploaded_file($tmp, $fname)) { $date = date("Y-m-d H:i:s"); $newlog = "{$date}\t{$fname}\t{$memo}¥n"; array_unshift($log, $newlog); file_put_contents($savefile, $log); //ファイルへ保存 } } // ログの内容をHTMLに変換する $html = ""; foreach ($log as $line) { list($date, $fname, $memo) = split("\t", $line); $body = htmlspecialchars($body); $html .= "<hr/><h3>$memo($date)</h3><p><img src='$fname'/></p>"; } // 以下 HTMLの表示 ?> <html><body><h1>フォトアルバム</h1> <?php echo $html; ?><hr/> <!-- 画像の投稿フォーム --> <form enctype="multipart/form-data" method="POST"> 画像ファイル: <input name="photo" type="file" /><br/> メモ:<input type="text" name="memo" size="30"/><br/> <input type="submit" value="アップロード" /> </form> </body></html> よろしくお願いします。