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

解決済みの質問

FirefoxでFormのfileでファイルのパスが取得できない

フォーム<form>内のファイル名入力フィールド<input type="file">をPOSTで取得すると、IE6では「パス名:ファイル名」が取得されるのですが、Firefox2.0では「ファイル名」しか取得できません。
FirefoxでもIEと同様に「パス名:ファイル名」を取得するにはどうしたらよいでしょうか?

例えば、デスクトップに「a.txt」ファイルがあれば
IE6では「C:\\Documents and Settings\\Administrator\\デスクトップ\\a.txt」
Firefox2.0では「a.txt」
と表示されます。
FirefoxでもIEと同じようにするにはどうすれば良いでしょうか?
よろしくお願いします。

以下はソースです。
---------------------ソース--------------------------------
<html>
<body>
<form method="post" action="<?=$_SERVER["PHP_SELF"]?>">
<input type="file" name="file">
<input type="submit" name="Submit">
</form>

<?php
echo $_POST['file'];
?>
</body>
</html>
---------------------ソース--------------------------------

投稿日時 - 2007-07-18 18:56:23

QNo.3179055

暇なときに回答ください

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

できません。
ブラウザ動作としてはFirefoxの方が正しく、フルパス名を送ってしまうIE6は以前から問題視されていました。
http://d.hatena.ne.jp/hoshikuzu/20050226#D20050226IEFILEUPLOADVULN

IE7では改善されたはずです(未確認)
そういうわけですので、ファイル名しか送られてこないことを前提にプログラミングされてください。

また補足ですが、ファイルをアップロードする時はFORMタグに
  enctype="multipart/form-data"
を付加するのがお約束です。
付けておかないとアップロードされたファイルのデータが正しく受け取れません。
こちらのページが参考になるかと思います。
http://search.net-newbie.com/php/features.file-upload.html

投稿日時 - 2007-07-18 19:53:22

お礼

なるほどです。参考になりました。
ご回答ありがとうございました。

投稿日時 - 2007-07-19 00:04:29

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

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

回答(1)

あなたにオススメの質問