前提・実現したいこと
PHPの書籍に載っていた内容で、サーバーに画像をアップロードする機能を作成しています。本に記載されているコードを入力しましたが、画像を選択後にmkdir()についてのエラー分が表示されて、画像が表示されませんでした。
発生している問題・エラーメッセージ
Warning: mkdir(): Permission denied in /Applications/XAMPP/xamppfiles/htdocs/php_2/chapter5/upload-output.php on line 5
該当のソースコード
エラーで指定されたソースコード↓
php
1<?php require '../header.php'; ?> 2<?php 3 if(is_uploaded_file($_FILES['file']['tmp_name'])){ 4 if(!file_exists('upload')){ 5 mkdir('upload'); 6 } 7 $file='upload/'.basename($_FILES['file']['name']); 8 if(move_uploaded_file($_FILES['file']['tmp_name'].$file,$file)){ 9 // .$fileを第二引数として指定するとエラーが消えた 10 echo $file, 'のアップロードに成功しました。'; 11 echo '<p><img src="', $file, '"></p>'; 12 }else{ 13 echo 'アップロードに失敗しました。'; 14 } 15 }else{ 16 echo 'ファイルを選択して下さい。'; 17 } 18?> 19<?php require '../footer.php'; ?>
ボタン等のソースコード↓
PHP
1<?php require '../header.php'; ?> 2<p>アップロードするファイルを指定して下さい。<p> 3<form action="upload-output.php" method="post" enctype="multipart/form-data"> 4<!-- ファイルのアップロードは、 enctype="multipart/form-data"を指定する--> 5<p><input type="file" name="file"></p> 6<!-- type="file"を記述するとファイル選択欄が表示される --> 7<p><input type="submit" value="アップロード"></p> 8</form> 9<?php require '../footer.php'; ?>
試したこと
Googleでteratailやqiitaで情報収集した以下のことを試した
・mkdir('upload',0777);と追加したが、エラーは直らなかった。
・mkdir('upload');の次にchmod('upload',0777);を追加したが、エラーは直らなかった
補足情報(FW/ツールのバージョンなど)
PCは、Mac Air bookを使用
XAMPPを使用(7.3.26-1)
Visual Studio Codeを使用
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/05 13:09
2021/04/05 15:18