- PR -

PHP ファイルアップロード

1
投稿者投稿内容
AlohaHawaii
会議室デビュー日: 2007/01/16
投稿数: 9
投稿日時: 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>

どこがおかしいのでしょうか。
教授よろしくごお願い致します。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-06-05 16:07
引用:

AlohaHawaiiさんの書き込み (2007-06-05 15:46) より:
if(move_uploaded_file($_FILES["uploadfile"]["tmp_name"],$file_path)){


質問する前にやるべきこと。

ここの$_FILES["uploadfile"]["tmp_name"]と$file_pathに何が格納されているかまずデバッグする。
アップロード先のパーミッションを確認する。
AlohaHawaii
会議室デビュー日: 2007/01/16
投稿数: 9
投稿日時: 2007-06-08 12:03
ありがとうございます。
何とか、「ファイルアップロードを完了しました。」まではこぎつけましたが
ファイル(画像)が正しく表示されません。

□>ファイルアップロードを完了しました。

のように表示されてしまいます。
何度もすみませんがよろしくご教授お願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-08 12:09
引用:

AlohaHawaiiさんの書き込み (2007-06-08 12:03) より:

ファイル(画像)が正しく表示されません。
□>ファイルアップロードを完了しました。
のように表示されてしまいます。


最終的にクライアントに送信される HTML ソースを見ましょう。それと、その HTML ソースを Another HTML-lint gateway で検証してみることも強くお勧めしておきます。見た感じでは滅茶苦茶なソースに仕上がっています。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
AlohaHawaii
会議室デビュー日: 2007/01/16
投稿数: 9
投稿日時: 2007-06-08 13:38
引用:

じゃんぬねっとさんの書き込み (2007-06-08 12:09) より:
最終的にクライアントに送信される HTML ソースを見ましょう。それと、その HTML ソースを Another HTML-lint gateway で検証してみることも強くお勧めしておきます。



ありがとうございます。
クライアント側のソースを確認してみます。
ソースは解説本の通りです。
全くの初心者で勉強中です。
ソースが滅茶苦茶かどうかは判断できません。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-08 13:59
引用:

AlohaHawaiiさんの書き込み (2007-06-08 13:38) より:

ソースが滅茶苦茶かどうかは判断できません。:cry:


判断するのは貴方様ではなく "Another HTML-lint gateway" 様です。
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html

薦めた理由ですが、

引用:

□>ファイルアップロードを完了しました。


を拝見して、何らかの要素の閉じタグ末尾が重なっているか、文字化けたる原因 (最初の meta 宣言などに誤り) があるのではないかと感じたからです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
AlohaHawaii
会議室デビュー日: 2007/01/16
投稿数: 9
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)