トップ回答者
ファイルダウンロード時に『HTTP 500 - 内部サーバー エラー』になります

質問
-
IIS+ASP+BASP21でサーバ(2003Server)からファイルをダウンロードするプログラミングをしています。
ダウンロードするファイル名に、2バイト文字やカナ文字が含まれていない場合は正常にダウンロードが終了するのですが、ファイル名に2バイト文字等が含まれている場合、上記エラーが表示されてしまいます。
また、手元のPC(http://localhost/・・・)では、ファイル名に2バイト文字等が含まれていても正常にダウンロード(ファイル保存)できるので困っております。
以下にソースファイル(.asp)を記載するので、解決策等をご存じの方がいらっしゃればご教授下されば幸いです。
<%@ Language=VBScript %>
<%
Dim dname
Dim fnamedname = Request.QueryString("dir_name")
fname = Request.QueryString("file_name")Response.ContentType = "application/octet-stream;name=" & fname
Response.AddHeader "Content-Disposition","attachment;filename=" & fnameSet objBasp = Server.CreateObject("Basp21")
bydata = objBasp.BinaryRead(Server.MapPath("..\_file\" & dname & "\" & fname))Set objBasp = Nothing
Response.AddHeader "Content-Length", ubound(bydata) + 1
Response.BinaryWrite bydata
%>- 移動 Wang Huang 2012年10月2日 1:39 (移動元:Internet Information Services 5.x, 6.0 - 全般)
2007年10月24日 0:48
回答
-
私も、 QueryString("dir_name"), QueryString("file_name") にちゃんとしたデータが入ってきてないんじゃないかと思います。
で、 これはセキュリティ面で非常に脆弱なコードですが、 そこはきっとイントラネット用で気にしていないのであろうとして、 横に置いておくとして。そもそも、 ダウンロードさせるファイル名に日本語を使うのは、 うまく行かないことはご存知でしょうか?
現状、 ケースバイケース ( 日本語を使わせない仕様とすることも含めて ) の対応をするしかありません。
→ Visual Basic フォーラム » 日本語ファイルのダウンロードについて2007年10月30日 2:40 -
はじめまして。だどさんと申します。
私も Basp21 は試していませんが (すみません)、手元の PC でうまくできていて、
サーバーでうまくいかないということでしたら、どこかの設定で回避できそうですね。
解決策としてよくあるのは、
1.コードページを指定する (日本語932などをページのディレクティブまたは Session で指定してみます)
2.サーバーの言語設定で、非 Unicode プログラムのときの言語設定を日本語にする
この二つでどうにかならないでしょうか?
ご参考になりましたら幸いです。
-----------------------------------------
だどさん http://keicode.com/
2008年11月8日 7:57
すべての返信
-
私も、 QueryString("dir_name"), QueryString("file_name") にちゃんとしたデータが入ってきてないんじゃないかと思います。
で、 これはセキュリティ面で非常に脆弱なコードですが、 そこはきっとイントラネット用で気にしていないのであろうとして、 横に置いておくとして。そもそも、 ダウンロードさせるファイル名に日本語を使うのは、 うまく行かないことはご存知でしょうか?
現状、 ケースバイケース ( 日本語を使わせない仕様とすることも含めて ) の対応をするしかありません。
→ Visual Basic フォーラム » 日本語ファイルのダウンロードについて2007年10月30日 2:40 -
はじめまして。だどさんと申します。
私も Basp21 は試していませんが (すみません)、手元の PC でうまくできていて、
サーバーでうまくいかないということでしたら、どこかの設定で回避できそうですね。
解決策としてよくあるのは、
1.コードページを指定する (日本語932などをページのディレクティブまたは Session で指定してみます)
2.サーバーの言語設定で、非 Unicode プログラムのときの言語設定を日本語にする
この二つでどうにかならないでしょうか?
ご参考になりましたら幸いです。
-----------------------------------------
だどさん http://keicode.com/
2008年11月8日 7:57