最近、PHPを勉強し始めた初心者です。
よくわかるPHPの教科書(毎日コミュニケーションズ刊)の109ページに載っているファイルアップロードの仕方が上手くいきません。
本書通りプログラムしてJPEG画像をアップしているはずなのですが 「※拡張子が.gif, .jpg, .pngのいずれかのファイルをアップロードしてください」 が表示されてしまいます。
XAMPP 1.7.3を使用しています。特に設定を変更したところはありません。
sample23.phpと同じフォルダ内にuser_imgフォルダも作りました。
何がいけないのでしょうか?
●sample23_input.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>ファイルアップロードを受信する</title>
</head>
<body>
<form action="sample23.php" method="post" enctype="multipart/ form-data">
<dl>
<dt>写真</dt>
<dd>
<input name="my_img" type="file" id="my_img" size="50" /></dd>
</dl>
<input type="submit" value="送信する" />
</form>
</body>
</html>
●sample23.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>ファイルアップロードを受信する</title>
</head>
<body>
<?php
$file = $_FILES['my_img'];
print('ファイル名(name): ' . $file['name'] . '<br />');
print('ファイルタイプ(type): ' . $file['type'] . '<br />');
print('アップロードしたファイル(tmp_name): ' . $file['tmp_name'] . '<br />');
print('エラー内容(error): ' . $file['error'] . '<br />');
print('サイズ(size): ' . $file['size'] . '<br />');
// ファイルアップロードの処理をする
$ext = substr($file['name'], -3);
if ($ext == 'gif' || $ext == 'jpg' || $ext == 'png') {
$filePath = './user_img/' . $file['name'];
move_uploaded_file($file['tmp_name'], $filePath);
print('<img src="' . $filePath . '" />');
} else {
print('※拡張子が.gif, .jpg, .pngのいずれかのファイルをアップロードしてください');
}
?>
</body>
</html>
一時ファイルが保存される場所を検索すると C:\xampp\tmp と表示されます。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
そちらの提示したソースをコピペして、実際に動かしてみました。
確かにアップロードされていません。
<?php の直後に print_r($_REQUEST); と入れてみました。
Array ( [my_img] => d05500098_2.pdf )
↑このように表示されました。
これで このように表示されると言う事はつまり、multipart として送信されてないと思われます。
公式からダウンロードしてきたソースと見比べてみました。
この本の公式は こちら → http://book.mycom.co.jp/support/pc/php/
↓この行の
<form action="sample23.php" method="post" enctype="multipart/ form-data">
ここらへんの部分
enctype="multipart/ form-data"
form-data の前に半角スペースが入っているのがまずいみたいです。
No.1
- 回答日時:
はじめまして。
windows環境で構築されているのですね。
プログラムを見た感じ、特に問題無さそうですが・・・
「 user_img 」ディレクトリを設置している場所は間違いありませんか?
「 ./user_img/ 」となっていますので、「 sample23.php 」と同じ階層に
設置していますか?
階層に問題が無ければ、XAMPPの設定かもしれませんが、私はwindowsに
詳しくありませんので、無責任な回答はできませんので悪しからず。。
あと、関係ないかと思うのですが、XHTMLをHTMLで記述してみてはどうでしょう?
全く的外れでしたらごめんなさい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
ファイルをGET送信でアップロー...
-
youtubeに音声のみのmp4ファイ...
-
FTPClientで転送結果(OKかFAIL)
-
aws cloud9というものを使って...
-
ファイルサイズがpost_max_size...
-
BASP21のFTPで日本語ファイル名...
-
画像ファイルの名前をそのままU...
-
$_Filesのnameについて
-
アップロード 仕方教えて
-
php,file_get_contentsの結果が...
-
Dreamweaver ドリームウィーバ...
-
いいかげんxamppなんとかしたい...
-
フォントの色を変えるには?
-
<大至急!>ご教授願います。
-
メレンゲの歴史
-
PHPのif文でその処理を途中で抜...
-
VBSの「MsgBox」について
-
こちらはただの直列処理ですか?
-
トランザクションが原因?DBに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
ファイルアップロードの上限を...
-
youtubeに音声のみのmp4ファイ...
-
one drive のアップロード失敗...
-
FTPClientで転送結果(OKかFAIL)
-
VBでクラウドストレージにア...
-
ftpでアップロードが出来ない
-
アップロードできるファイルサ...
-
ファイルをGET送信でアップロー...
-
FTP接続の例外処理
-
「クラウドにアップロード」」...
-
PHP 画像アップロード 重複防止
-
aws cloud9というものを使って...
-
ファイルサイズがpost_max_size...
-
ファイルアップロードしたもの...
-
csvファイルをMySQLにインポー...
-
全角ファイル名をアップロード...
-
ファイルのアップロードで、フ...
-
携帯からファイルアップロード...
-
SmartyでHTMLソースの変更が反...
おすすめ情報