2

データベースの画像フィールドにテキストファイルをアップロードしました。問題は、ファイルを取得しようとしたときです(ユーザーがリンクをクリックするだけでファイルをダウンロードできるようにします)。ダウンロードしようとすると、Webページのコンテンツが表示されます(すべてのhtmlがテキストファイルに入力されます)。ファイルのダウンロード方法に誤りがあると考えています。最初に一時ファイルに保存せずに、コンテンツをファイルにストリーミングすることはできませんか?

私が使用しているコードを以下に示します。UploadFilesは、データ、ID、名前などを含む私のクラスです。

    public void DownloadUploadedFile(Page sender, UploadFiles uf)
{
    sender.Response.ContentType = uf.FileType; // the binary data
    sender.Response.AddHeader("Content-Disposition", "attachment; filename=" + uf.FileName);
    sender.Response.BinaryWrite(uf.FileData);
}
4

1 に答える 1

2

ページの残りの部分がクライアントに送られすぎているようです。応答をクリアし、後で閉じる必要があります。試す:

sender.Response.Clear();
sender.Response.ContentType = uf.FileType; // the binary data
sender.Response.AddHeader("Content-Disposition", "attachment; filename="
         + uf.FileName);
sender.Response.BinaryWrite(uf.FileData);
sender.Response.Close();

または、ハンドラー(ashx)を使用してこれを行います。これには、通常のページマークアップが含まれていないためです。

于 2009-08-31T12:56:13.747 に答える