ファイルアップローダで2バイト文字をエスケープするかそのままにするか悩んで困る
どっかの掲示板で見た話題に触発されて、自分の会社 or プロバイダの e-mail のメールボックスの容量が なんMB なのか知らずに何でも「e-mail で送信してください」とおっしゃられるもう少しなんとかなって欲しいクライアントに http でファイルを送信するシステムを作っていますが、要望は、ファイル名をなるべく壊さないようにして欲しい、ていうもの。
なるべく壊さないって、あんた……
IE と Firefox の URL エンコーディングの仕組みが違うので、まいっちんぐ。
Windows XP において、ブラウザデフォルトでは、
- IE 6
- UTF-8 を URL エンコーディング
- Firefox 1.03
- Shift-JIS を URL エンコーディング
こんな調子じゃ、この世に存在するブラウザ毎調べなきゃいけないのでやりたくないです。
同じファイルを UTF-8、EUC-JP、SJIS の3種用意しておけばなんとかなりそうな気もしますけれども、なんだかアホらしいので、mod_rewrite で 他のエンコーディングのリクエストが来ても UTF-8 に統一とかしてしまうとステキそげですができるかどうかはしらんです。
2005.04.27 午後 12:06 [パソコン・インターネット] | 固定リンク |
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19018/3878319
この記事へのトラックバック一覧です: ファイルアップローダで2バイト文字をエスケープするかそのままにするか悩んで困る:
コメント
PATH_INFOにファイル名を渡すような使い方に?
投稿者: otsune (2005/04/27 14:07:36)
PATH_INFOにファイル名を渡すような使い方に?
そう思ったんですけれども、よく分かっていなかったりします。
MacIE5 が、SJIS の URL エンコーディングで取りに来て、文字化けした状態で保存しちゃったので、やめることにしました。
投稿者: CL (2005/04/27 14:31:34)
普通にsha1とかでファイル名を生成したりとか。
ファイル名はtextareaフォームで受けてJcode通しちゃうとか?
投稿者: otsune (2005/04/29 2:34:31)
普通にsha1とかでファイル名を生成したりとか。 ファイル名はtextareaフォームで受けてJcode通しちゃうとか?
PukiWiki みたいな形になるでしょうか。
生ファイル名:文書2-after.pdf 格納ファイル名:attach/3A7465737433_CAB8BDF1322D61667465722E706466 生成されるURL: http://example.org/pukiwiki.php?plugin=attach&pcmd=open&file=%CA%B8%BD%F12-after.pdf&refer=%3Atest3
半クローズドな環境で究極の簡単ユーザインタフェースを目指すためには、
upload する人:生データの名前を変更せずに cgi フォームで Web共有スペースに上げる
↓
(cgi は所定の場所に up、相手先に e-mail でダウンロード場所表示、URLは2バイト文字混じり)
↓
download する人:e-mail で アドレスをクリックして WWW ブラウザでダウンロード
つうかたちを。download する人は代理店とかなので、ファイル名を変更するとかしないから(e-mail で添付できる範囲の画像データであれば広告代理店の方は転送で処理されますので)、ファイル名に2バイト文字使っている場合、どうやってダウンロードさせればいいか、と思ったとき、「生データの2バイト文字のママ置いておいたら WWW ブラウザ側でどうなるか?」と思い、SJISとUTF-8で名付けたファイルを置いておき Macintosh のブラウザで PULL っつたら、それぞれのブラウザで2バイト文字のエンコーディングが違うものの引っ張ってこれたので使えるかな?なんて思ったのがこのエントリの発端です。
ダウンロード側に e-mail で通知する URL に、あいだに CGI を挟めた記述にすれば、CGI 側で http ヘッダの中の Content-disposition でダウンロードされるべきファイル名に設定されるようにすることで目的に近づけそうですね。
投稿者: CL (2005/04/29 7:17:59)






![森田 創: WEB+DB PRESS 総集編 [Vol.1~60]](http://ecx.images-amazon.com/images/I/51aE58LxWlL._SL75_.jpg)
















![: 電子ルーペ ViewPe[ビューペ] 3R-MSV35 マイクロスコープ デジタル顕微鏡 高機能 低価格 読書 植物 研究 肌チェック](http://ecx.images-amazon.com/images/I/41erkiQgAsL._SL75_.jpg)





![: Optimus bright [docomo L-07C] 対応 予備バッテリー 1500mAh BL-44JN](http://ecx.images-amazon.com/images/I/41gjqsDjq%2BL._SL75_.jpg)










![: パンツの穴 [DVD]](http://ecx.images-amazon.com/images/I/21R9SEY1HPL._SL75_.jpg)

















