- 締切済み
<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'}にはファイルそのものがバイナリで入っていました。 ご存知の方、方法を詳しく教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- bricks
- ベストアンサー率69% (16/23)
回答No.1
可能か不可能かということでしたら 可能です。 ただし フリーの掲示板CGIがその方式を 取っていないのが多いのは それなりの理由があります。 簡単にいえば 閲覧者にファイル名を勝手に決められるのは 危ない事と ブラウザの種類によっては ファイル名を取得できないからです。 もしそれでもファイル名を取得したいのなら フォームデータのデコード処理の段階から 修正しなくてはいけません。 そのCGIスクリプトが どのようなデコード処理を行っているのか 分かりませんが multipart/form-dataのMIMEタイプの デコード処理を行っている所があるはずです。 そこを修正します。 詳しくは 「multipart/form-data」で検索をかければ いろいろな事例が出てきますので 調べてみると良いでしょう。
お礼
回答ありがとうございます。 > 閲覧者にファイル名を勝手に決められるのは > 危ない事と > ブラウザの種類によっては > ファイル名を取得できないからです。 ブラウザの種類によってはファイル名を取得できないとは知りませんでした。 投稿を管理者に限定するのでとりあえず問題はなさそうなのですが。 「multipart/form-data」調べてみます。 ありがとうございました。