- - PR -
ダウンロード処理
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-12-10 12:56
いつも参考にさせて頂いております。
言語C# ASP.NetでWebアプリケーションを開発しています。 ファイルのダウンロード処理を作成しているのですが、 フレームで切られた画面からのファイルダウンロード時に ファイル名が文字化けをおこしてしまい困っております。 フレームで切られていない画面の場合は正常に動作します。 下記のコードがダウンロード処理の部分になります。 Private Sub FileDn() Dim strFilePath As String = "D:\\test.xls" Dim strDNName As String = "テスト.xls" Dim strFileName As String With Response .Clear() '//設定 If Regex.Match(Request("HTTP_USER_AGENT"), "^MSIE 5.5;").Success Then ' //IE5.5用 .ContentType = "application/octet-stream-dummy" Else ' //それ以外 .ContentType = "application/octet-stream" End If strFileName = System.Web.HttpUtility.UrlEncode(strDNName) .AddHeader("content-disposition", "attachment; filename=" + strFileName) .WriteFile(strFilePath) .End() End With End Sub どなたか、解決方法を知っている方がおられましたら ご教授よろしくお願い致します。 | ||||
|
投稿日時: 2003-12-11 12:19
のファイル名指定を Dim strDNName As String = "dl_test.xls" と半角で行って見てください。 おそらく化けないハズです。 って事で、それが原因であれば文字コード変換を行ってください。 | ||||
|
投稿日時: 2003-12-11 14:29
本題とは関係有りません。
記載されているコードは、VB.NETですよね? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2003-12-20 12:54
VB.NETで開発しています。
以前はC#で開発していました。 C#で開発していた当時は フレームで切られたページからのダウンロードは 行っていなかったので気がつきませんでした。 | ||||
|
投稿日時: 2003-12-20 13:01
kaguraさん ご指摘ありがとうございます。
確かに半角英数字をファイル名に用いれば 文字化けはおこさないのですが、 ファイル名がどうしても2バイト文字列になって しまう仕様なので・・・ | ||||
|
投稿日時: 2003-12-21 02:34
フレームの文字コードとフレーム内のページの文字コードが異なっている、ということはないですか?
以前、ページの文字コードと外部スクリプトの文字コードが異なってスクリプトエラーになった経験があります。 フレームがShift-JISで、ASPXがUTF-8とか・・・。 | ||||
|
投稿日時: 2003-12-22 14:00
こんにちは。
興味のある話題なので、久しぶりに書き込んでみます。 私の場合はPDFのデータでしたが、ゴンさんと同じように AddHeader("content-disposition", "attachment; filename=" + strFileName) などと名前を指定してクライアントにダウンロードさせようとしたのですが、やはりファイル名に日本語を使うと文字化けしてしまいました。(IEでアクセスすると) AddHeaderでヘッダに書き込むと、おそらくUTF-8になるのだろうと思います。 ですが、IEではヘッダのUTF-8は認識できない、ということではないでしょうか。 多分ですが、ヘッダではASCII文字しか使えないと思いましたので、読めないIEを責めることはできないと思います。 aspxファイルをUTF-8に変更してみましたが同じでした。 ちなみに、他のブラウザー(Opera)でそのページを見てみたところ、文字化けを起こさずに日本語のファイル名が表示されました。 Byteの配列などを直接ヘッダに書くような方法があれば、日本語のstringをShift-Jisのバイト配列に変換して書くこともできるんでしょうが。 それともASCII文字以外をASCII文字で表すような方法があるんでしょうかね。(メールのSubject部分みたいな) | ||||
|
投稿日時: 2003-12-22 16:52
この件に関してはこちらに情報がありますよ。
http://support.microsoft.com/default.aspx?scid=kb;ja;436616 |