- - PR -
PHP ファイルアップロード
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-06-05 15:46
解説本に沿ってPHPを勉強中です。
以下のFormとviewでファイルをアップロードして表示するテストを行おうとしてますが 「正常にアップロードされませんでした」という結果になってしまいます。 form44.html**************************************************************** <html> <head> <title>ファイルアップロード44</title> <meta http-equiv="Content-Type" content="text/html charset=Shift_JIS"> </head> <body bgcolor="#FFFFFF" text="#000000"> <font size="4">ファイルアップロードのテスト44</font> <form name="form44" method="post" action="view44.php" enctype="multipart/form-data"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="100000"> 画像: <INPUT type="file" name="uploadfile"> <br> 説明: <INPUT type="text" name="comment"> <BR> <BR> <INPUT type="submit" value="ファイルアップロード"> </form> </body> </html> view44.php**************************************************************** <HTML> <HEAD> <TITLE>PHP44テスト</TITLE> </HEAD> <BODY> <?php $file_dir='C:\Program Files\Apache Group\Apache2\htdocs\image\\'; $file_path=$file_dir.$_FILES["uploadfile"]["name"]; if(move_uploaded_file($_FILES["uploadfile"]["tmp_name"],$file_path)){ $img_dir="/image/"; $img_path=$img_dir.$_FILES["uploadfile"]["name"]; $size=getimagesize($file_path); ?> ファイルアップロードを完了しました。<br> <IMG scr="<?=$img_path?>"<?=$size[3]?>><br> <B><?=mb_convert_encording($_POST["comment"],"ECU-JP","SJIS")?></B><br> <?php }else{ ?> 正常にアップロードされませんでした。<br> <?php } ?> </BODY> </HTML> どこがおかしいのでしょうか。 教授よろしくごお願い致します。 | ||||||||
|
投稿日時: 2007-06-05 16:07
質問する前にやるべきこと。 ここの$_FILES["uploadfile"]["tmp_name"]と$file_pathに何が格納されているかまずデバッグする。 アップロード先のパーミッションを確認する。 | ||||||||
|
投稿日時: 2007-06-08 12:03
ありがとうございます。
何とか、「ファイルアップロードを完了しました。」まではこぎつけましたが ファイル(画像)が正しく表示されません。 □>ファイルアップロードを完了しました。 のように表示されてしまいます。 何度もすみませんがよろしくご教授お願い致します。 | ||||||||
|
投稿日時: 2007-06-08 12:09
最終的にクライアントに送信される HTML ソースを見ましょう。それと、その HTML ソースを Another HTML-lint gateway で検証してみることも強くお勧めしておきます。見た感じでは滅茶苦茶なソースに仕上がっています。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-06-08 13:38
ありがとうございます。 クライアント側のソースを確認してみます。 ソースは解説本の通りです。 全くの初心者で勉強中です。 ソースが滅茶苦茶かどうかは判断できません。 ![]() | ||||||||
|
投稿日時: 2007-06-08 13:59
判断するのは貴方様ではなく "Another HTML-lint gateway" 様です。 http://openlab.ring.gr.jp/k16/htmllint/htmllint.html 薦めた理由ですが、
を拝見して、何らかの要素の閉じタグ末尾が重なっているか、文字化けたる原因 (最初の meta 宣言などに誤り) があるのではないかと感じたからです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-06-12 14:45
できました!ありがとうございます。
コード修正しましたが、最終的な問題はファイルサイズだったようです。 form44.html**************************************************************** <HTML> <HEAD> <TITLE>ファイルアップロード44</TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </HEAD> <BODY bgcolor="#FFFFFF" text="#000000"> <FONT size="4">ファイルアップロードのテスト44</FONT> <FORM name="form1" method="post" action="view44.php" enctype="multipart/form-data"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="3000000"> 画像: <INPUT type="file" name="uploadfile"> <BR> 説明: <INPUT type="text" name="comment"> <BR> <BR> <INPUT type="submit" value="ファイルアップロード"> </FORM> </BODY> </HTML> view44.php**************************************************************** <HTML> <HEAD> <TITLE>PHP44テスト</TITLE> </HEAD> <BODY> <?php $file_dir='C:\\\\Program Files\\\\Apache Group\\\\Apache2\\\\htdocs\\\\image\\\\\\\\';←うまく表示できません $file_path=$file_dir.$_FILES["uploadfile"]["name"]; if(move_uploaded_file($_FILES["uploadfile"]["tmp_name"],$file_path)){ $img_dir="/image/"; $img_path=$img_dir.$_FILES["uploadfile"]["name"]; $size=getimagesize($file_path); ?> ファイルアップロードを完了しました。<br> <IMG src="<?=$img_path?>"<?=$size[5]?>><br> <B><?=mb_convert_encording($_POST["comment"],"EUC-JP","SJIS")?></B><br> <?php }else{ ?> 正常にアップロードされませんでした。<br> <?php } ?> </BODY> </HTML> |
1