0

データベースからいくつかのブロブを取得したとします。次に、それらをバイト配列に入れます。例えば:

Byte[] lol1=(Byte[])reader["data1"];
Byte[] lol2=(Byte[])reader["data2"];

これらのバイト配列をファイルとしてzipに書き込み、C#のブラウザからファイルとしてダウンロードするにはどうすればよいですか?

// わかりやすくするために編集

次のような「Manager.cs」ファイルの関連コード:

    public Byte[] FileDownload(string userName)
    {
        try
        {
            MySqlDataReader reader = new MySqlCommand("SELECT veri FROM veriler WHERE kullanici_id = (SELECT id FROM uyeler WHERE kullanici_adi='" + userName + "')", con).ExecuteReader();
            MemoryStream ms = new MemoryStream();
            GZipStream gzs = new GZipStream(ms, CompressionMode.Compress);
            while (reader.Read())
                gzs.Write((Byte[])reader["veri"], 0, ((Byte[])reader["veri"]).Length);
            return ms.ToArray();
        }
        catch (Exception)
        {
            return Encoding.UTF8.GetBytes(string.Empty);
        }
    }

次のような「DataDown.aspx.cs」ファイルの関連コード:

protected void download_Click(object sender, EventArgs e)
{
    Response.AddHeader("Content-type", ContentType);
    Response.AddHeader("Content-Disposition", "attachment; filename=Archive.zip");
    Response.BinaryWrite(new Manager().FileDownload(Session["user"].ToString()));
    Response.Flush();
    Response.End();
}

唯一のファイルである .zip ファイルを返します。2 つのファイルである必要があります。また、この 1 つのファイルが破損しています。

4

1 に答える 1