実現したいこと
ブラウザ上にある画面をアップロードする画面から画像ファイルを「upload」というフォルダに画像を保存したいです。
コードはWebからPOSTしてきた画像をPHPで処理するロジックになっております。
しかし、エラーが発生します。ファイルが見つからないというエラーが発生します。
発生している問題・分からないこと
ファイルが見つからないエラーが発生しております。そして、PHPのコードの四行目の
move_uploaded_file()関数内にある、$file['tmp_name']の[](ブラケット)が赤いまま(文字列になっている)です。
エラーメッセージ
error
1Warning: move_uploaded_file(uploads/upload_cat.png): Failed to open stream: No such file or directory in /Applications/MAMP/htdocs/php_lesson/upload.php on line 4 2 3Warning: move_uploaded_file(): Unable to move "/Applications/MAMP/tmp/php/phpAWejA0" to "uploads/upload_cat.png" in /Applications/MAMP/htdocs/php_lesson/upload.php on line 4 4ファイルのアップロードが失敗しました
該当のソースコード
HTML
1HTML 2------------------ 3<html lang="en"> 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <title>ファイルのアップロード</title> 8</head> 9<body> 10 <form action="upload.php" method="post" enctype="multipart/form-data"> 11 <label for="file">ファイル選択:</label> 12 <input type="file" name="file" id="file"/> 13 <input type="submit" value="アップロード"/> 14 </form> 15</body> 16</html> 17----------------------------- 18PHP 19 20<?php 21 $file = $_FILES['file']; 22 $targetFile = 'uploads/'.$file['name']; 23 if(move_uploaded_file($file['tmp_name'], $targetFile)){ 24 echo 'ファイルがアップロードされました'; 25 }else{ 26 echo 'ファイルのアップロードが失敗しました'; 27 } 28?> 29
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
chat GPTで調べた結果、「ディレクトリにファイルが見当たらない」と出ていて中々解決できそうにありません。
補足
バージョンはPHP8.0
MAMPを使っております。
OSはMacBook Proです。
回答1件
あなたの回答
tips
プレビュー