電子書籍の厳選無料作品が豊富!

OS:Window XP Pro
開発環境:Xampp(Apache + PHP + Mysql)

現在ファイルをアップロードする処理を書いているのですが、
この処理を
1)a.phpでファイルをアップロードする処理
2)b.phpでアップロードされたファイルの処理

と分けて、コーディングするのではなく

1)a.php内にファイルをアップロードする処理とアップロードされたファイルの処理を一緒に記述する

という風にできないかと思いましたので、
以下のようなコードを書いたのですが
$_FILES['upload_file']['tmp_name'])
の値を調べてみたところ、なんの値も
入っていなかったことから
このコードでは、二つの処理を一つのファイル内に書くことが
でいないようでした。

どうにかしてひとつのファイル内に
この二つの処理を同居させることはできないのでしょうか?


a.php
---------------------------------------
switch($action)
{
case "update":
if(is_uploaded_file($_FILES['upload_file']['tmp_name']))
{
$upload_file = $_FILES['upload_file']['tmp_name']);

if(file_exists(dirname(__FILE__)."/profile_phote/") == TRUE)
{
$phote_name = dirname(__FILE__)."/profile_phote/".$upload_file;
}
else
{
mkdir(dirname(__FILE__)."/profile_phote/");
$phote_name = dirname(__FILE__)."/profile_phote/".$upload_file;
}

move_uploaded_file($_FILES['upload_file']['tmp_name'],$phote_name);

"リダイレクト処理・・・"
case ...

case ...

default:
<form name="profile" action="" method="post">
<input type="file" name="upfile">
<input type="hidden" name="action" value="update">
</form>
}

A 回答 (1件)

form にmultipart の指定をしなければ、ファイルの中身は送信されません。


$_FILES['upload_file']['tmp_name'] が空なのはそのためでしょう。
アップロードが行われていないので、結局b.php で操作しているファイルは、既にサーバー上にあったファイルということかと思いますが。
<form enctype="multipart/form-data" action="__URL__" method="POST">

http://www.php.net/manual/ja/features.file-uploa …

参考URL:http://www.php.net/manual/ja/features.file-uploa …
    • good
    • 0
この回答へのお礼

>form にmultipart の指定をしなければ、ファイルの中身は送信されません。

おっしゃる通りでした^^;
ここを直しただけで、全てうまくいきました。

よく見たら、本にも書いてありました・・・
(申し訳ない・・・^^;)

本当にありがとうございました。
とても助かりました。

お礼日時:2008/04/08 03:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!