みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHP 画像アップローダー作成について

PHPの勉強をしている者です。
ローカル環境(XAMPP1.7.3)にて、画像アップローダーを動かそうと試みています。
が、一時ファイル名が取得できず、失敗に終わります。初歩的なミスかもしれません。
--------------------
【upload.html】
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>画像ファイルアップロード</title>
</head>
<body>
<h1>画像ファイルアップロード</h1>
<p>アップロードする画像ファイル(JPEG形式)を選択して「アップロード」ボタンを押してください。</p>
<form action="upload_image.php" method="POST" enctype="multipart/form-data">
<table>
<tr>
<th>画像ファイル選択</th>
<td><input type="file" name="filename" size="50"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="アップロード">
</td>
</tr>
</table>
</form>
</body>
</html>
--------------------
【upload_image.php】
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>画像ファイルアップロード</title>
</head>
<body>
<h1>アップロードファイル情報</h1>
<p>
<?php
// ファイル名の取り出し
$file_name = $_FILES['filename']['name'];
// ファイル(MIME)タイプの取り出し
$file_type = $_FILES['filename']['type'];
// 一時ファイル名の取り出し
$temp_name = $_FILES['filename']['temp_name'];
// エラーコードの取り出し
$upload_error = $_FILES["filename"]["error"];

// 保存先のディレクトリ
$dir = 'uploads/';
// 保存先のファイル名
$upload_name = $dir . $file_name;
// JPEG形式のファイルをアップロードする
if (($file_type == "image/jpeg") || ($file_type == 'image/pjpeg')) {
// アップロード(移動)
$result = move_uploaded_file($temp_name,$upload_name);

if ($result) {
// アップロード成功時
echo '■アップロード成功';
} else {
// アップロード失敗時
echo '■アップロード失敗';
}
} else {
// JPEG形式以外のファイルはアップロードしない
echo '■JPEG形式の画像をアップロードしてください。';
}
?>
</p>
<table>
<tr>
<td colspan="2"><img src="<?php echo $upload_name; ?>" alt=""></td>
</tr>
<tr>
<th>エラーコード</th>
<td><?php echo $upload_error; ?></td>
</tr>
<tr>
<th>画像ファイル名</th>
<td><?php echo $file_name; ?></td>
</tr>
<tr>
<th>MIMEタイプ</th>
<td><?php echo $file_type; ?></td>
</tr>
<tr>
<th>一時ファイル名</th>
<td><?php echo $temp_name; ?></td>
</tr>
</table>
</body>
</html>
--------------------
【php.iniの一部】
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir = "C:\xampp\tmp"

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 128M
--------------------

このように作っております。

結果は
エラーコード→0
画像ファイル名→正常取得
MIMEタイプ→正常取得
一時ファイル名→空

どのような原因が考えられるか、教えて頂ければ幸いです。

投稿日時 - 2012-05-25 14:01:08

QNo.7495314

すぐに回答ほしいです

質問者が選んだベストアンサー

$temp_name = $_FILES['filename']['temp_name'];

$temp_name = $_FILES['filename']['tmp_name'];

http://php.net/manual/ja/reserved.variables.files.php

投稿日時 - 2012-05-25 14:44:06

お礼

回答と参考URLご提示、感謝します!
無事に動きましたのでご報告いたします。
単純な綴りミスが命取りですね。

投稿日時 - 2012-05-25 16:16:10

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>$temp_name = $_FILES['filename']['temp_name'];

$temp_name = $_FILES['filename']['tmp_name'];
じゃない?

投稿日時 - 2012-05-25 14:45:27

お礼

先の方とはタッチの差でしたが
親切な回答に感謝します!

投稿日時 - 2012-05-25 16:16:57

あなたにオススメの質問