<input type=file>のファイル名

締切り済みの質問

<input type=file>のファイル名

QNo.312554の続きで画像アップ掲示板のファイルをそのままのファイル名でアップしたいのですが、
<input type=file name="upfile">
で入力されたファイルのファイル名を取り出すことって可能ですか?
ファイル名が「c:\myfolder\image\aaa.jpg」だったとして、
split(/\/,$in{'upfile'});
$count = scalar(@_);
$img = @_[$count - 1];
で$imgにファイル名だけ取り出せるかと思っていたら、$in{'upfile'}にはファイルそのものがバイナリで入っていました。
ご存知の方、方法を詳しく教えてください。

投稿日時 - 2002-07-13 17:52:43

QNo.313238

困ってます

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

[  前へ  |  次へ ]

回答(1件中 1~1件目)

ANo.1

可能か不可能かということでしたら
可能です。

ただし
フリーの掲示板CGIがその方式を
取っていないのが多いのは
それなりの理由があります。

簡単にいえば
閲覧者にファイル名を勝手に決められるのは
危ない事と
ブラウザの種類によっては
ファイル名を取得できないからです。

もしそれでもファイル名を取得したいのなら
フォームデータのデコード処理の段階から
修正しなくてはいけません。

そのCGIスクリプトが
どのようなデコード処理を行っているのか
分かりませんが
multipart/form-dataのMIMEタイプの
デコード処理を行っている所があるはずです。
そこを修正します。

詳しくは
「multipart/form-data」で検索をかければ
いろいろな事例が出てきますので
調べてみると良いでしょう。

投稿日時 - 2002-07-14 10:59:59

お礼

回答ありがとうございます。

> 閲覧者にファイル名を勝手に決められるのは
> 危ない事と
> ブラウザの種類によっては
> ファイル名を取得できないからです。

ブラウザの種類によってはファイル名を取得できないとは知りませんでした。
投稿を管理者に限定するのでとりあえず問題はなさそうなのですが。

「multipart/form-data」調べてみます。
ありがとうございました。

投稿日時 - 2002-07-15 09:24:12

あわせてチェックしたい
  • String str = "a\\b\\c"; ...
  • split関数について ...
  • pref_split 正規表現 ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら