質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Q&A

解決済

1回答

2446閲覧

php 画像のアップロード ディレクトリに画像ファイルが保存されない

koako

総合スコア6

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

0グッド

1クリップ

投稿2020/06/16 22:01

画像がディレクトリに保存されない

現在簡易的な掲示板を作成しております。そこで会員登録でプロフィール画像を登録できるようにしたいのですがディレクトリに画像ファイルを保存することができません、3日ほど考え調べたのですが解決できなかったため質問しました。

実行しようとしている事
登録->確認->登録確認(DB保存)
会員登録formから画像フォルダの選択があったさいに、画像のアップロードの処理を行い,画像ファイルのパスをDBに保存、画像自体は別ディレクトリ(image)を作成し保存するように考えております。画像のファイル選択がなければ未登録とされる

現状,ファイル選択を行っているのですが画像がディレクトリに保存されない、未登録となってしまう。
どなたかご教授して頂けると嬉しいです。


<?php 2 session_start(); 3 if (!empty($_POST)) { 4 ^ //プロフィル画像が選択された時の処理 5 ^ if (isset($_FILES['image']['name'])) { 6 ^ ^ $type = exif_imagetype($_FILES['image']['tmp_name']); 7 ^ ^ if (!isset($_FILES['image']['error']) || is_int($_FILES['image']['error'])) { 8 ^ ^ ^ $errors['image'] = 'パラメーターが不正です'; 9 ^ ^ } elseif ($_FILES['image']['errors'] > 0) { 10 ^ ^ ^ $errors['image'] = 'アップロードできませんでした。'; 11 ^ ^ } elseif (!in_array($type, [IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_GIF], true)) { 12 ^ ^ ^ $errors['image'] = 'ファイルの形式が未対応です'; 13 ^ ^ } else { 14 ^ ^ ^ $image = sha1_file($_FILES['image']['name']); 15 ^ ^ ^ $image = '.' . substr($_FILES['image']['name'], -3); 16 ^ ^ ^ move_uploaded_file($_FILES['image']['tmp_name'], './image/' . $image); 17 ^ ^ } 18 ^ } else { 19 ^ ^ $image = '未登録'; 20 ^ } 21 22 ^ if (empty($errors)) { 23 ^ ^ $_SESSION['image'] = $image; 24 ^ ^ header('Location: check.php'); 25 ^ ^ exit(); 26 ^ } 27 } 28 29 ?> 30 <!DOCTYPE html> 31 <html lang="ja"> 32 <head> 33 <meta charset="utf-8"> 34 <title></title> 35 </head> 36 <body> 37 <h2>新規登録</h2> 38 <form action='' method='POST' enctype='multipart/form-date'> 39 <p>プロフィール画像<input type='file' name='image'></p> 40 <?php if (!empty($errors['image'])): ?> 41 <p><?php echo $errors['image']; ?></p> 42 <?php endif; ?> 43 <p> 44 <input type='submit' value='送信'> 45 </form> 46 </body> 47 </html>

実際には名前、メール、パスワードの入力欄もありますが、この度は画像アップロードの処理だけを記載しております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

原因は、単純なスペルミスかなと。

formタグのenctype属性

× multipart/form-date

○ multipart/form-data

意味も考えるとわかりやすいかもです。
date(日付:デート)ではなくdata(データ)が正解。。。

実際にフォームから送信されたデータを見ると、
imageが、$_POSTに入って、$_FILESには入っていないことが分かりますので
こういう場合は、「おまじない(enctype属性)」が効いてない可能性が高いです。

投稿2020/06/17 00:28

mix-peach

総合スコア1910

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問