Web サイトの制作では、ファイルをダウンロードする機能を開発する必要があることがよくあります。 ファイルをダウンロードするには、次の 3 つの方法があります。
1.ASPダウンロードコード
<%
ファイル名 = Request.QueryString("ファイル名")
ファイル名 = "" の場合
Response.Write "filename パラメータを入力し、ダウンロードしたファイル名を指定してください"
それ以外
Response.ContentType = "アプリケーション/オクテットストリーム"
Response.AddHeader "コンテンツの性質", "添付ファイル; ファイル名 =" & ファイル名
Set FileStream = Server.CreateObject("Adodb.Stream")
ファイルストリーム.モード = 3
ファイルストリーム.タイプ = 1
FileStream.Open
FileStream.LoadFromFile( Server.MapPath(ファイル名))
Response.BinaryWrite( FileStream.Read )
FileStream.Close()
FileStream = 何も設定しない
終了する場合
%>上記のコードを asp タイプのファイルに保存し、download.asp?filename=a.gif のように使用します。
2. Webクライアントを使用する
次のコードをダウンロード ボタン イベントに追加します。
System.Net.WebClient wc = new System.Net.WebClient();
wc.DownloadFile( " 上記のコードは、プロンプトを表示せずに、サーバー側の a.gif ファイルをクライアントの C ドライブにダウンロードします。プロンプトが表示されないのは非常に恐ろしいことですが、場合によってはこれを実行する必要があります。このコードも使用できます。デスクトップ上でプログラムを実行します。
3. ダウンロード プロンプト付きの ASP NET ダウンロード コード
// ダウンロードするファイルを開きます
System.IO.FileStream r = new System.IO.FileStream(FileName, System.IO.FileMode.Open);
//基本情報を設定する
Response.Buffer = false;
Response.AddHeader("接続", "キープアライブ");
Response.ContentType = "アプリケーション/オクテットストリーム";
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.IO.Path.GetFileName(FileName));
Response.AddHeader("Content-Length", r.Length.ToString());
その間(真)
{
//バッファスペースをオープンする
byte[] バッファ = 新しいバイト [1024];
//ファイルデータを読み込む
int leng = r.Read(buffer, 0, 1024);
if (leng == 0)//ファイルの最後まで、end
壊す;
if (leng == 1024)//読み取ったファイルのデータ長はバッファ長と等しく、バッファデータは直接書き込まれます。
Response.BinaryWrite(バッファ);
それ以外
{
//読み取りファイル データがバッファより小さいため、バッファ サイズを再定義し、ファイルの最後のデータ ブロックの読み取りにのみ使用されます
byte[] b = 新しいバイト[長さ];
for (int i = 0; i < 長さ; i++)
b[i] = バッファ[i];
Response.BinaryWrite(b);
}
}
r.Close();//ダウンロードしたファイルを閉じる
Response.End(); // ファイルのダウンロードを終了します。このメソッドにはダウンロード プロンプト ボックスがあるため、サーバーはダウンロードが完了したことを知ることができます。