Iam在提名門戶上工作。用戶提交他們的提名和一些附件。每個提名的附件數量可能在3到10之間。因此,對於每一次提名,評估人員必須每次下載10個文件,這非常緊張。所以我想提供一個選項,一次下載與提名有關的所有附件作爲Zip文件。我能夠一次下載單個文件。請爲我提供一個解決方案,一次下載多個文件以及一些示例代碼片段。以下是我用於下載文件下載的單個文件 的代碼。我將文件內容存儲爲數據庫中的二進制文件使用C從數據庫下載多個文件
protected void DownloadFile(object sender, EventArgs e)
{
int id = int.Parse((sender as LinkButton).CommandArgument);
byte[] bytes;
string fileName, contentType;
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Name, Data, ContentType from tblFiles where [email protected]";
cmd.Parameters.AddWithValue("@Id", id);
cmd.Connection = con;
con.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
sdr.Read();
bytes = (byte[])sdr["Data"];
contentType = sdr["ContentType"].ToString();
fileName = sdr["Name"].ToString();
}
con.Close();
}
}
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = contentType;
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
您需要格式化您的代碼。 – artm 2014-10-01 04:34:01
實際問題是什麼?如何創建一個zip文件?你有沒有嘗試過一些東西?你嘗試谷歌,並沒有找到解決方案? – 2014-10-01 07:08:12
您好Kanavos我的實際問題是如何從數據庫一次下載多個文件。壓縮是第二優先。即使我能夠將所有文件存儲在文件夾中,那也很好。我使用了Google,但我沒有找到合適的解決方案。 Google中的每個解決方案都基於獲取託管在服務器中但不在數據庫中的一組文件,這與我的要求完全不同 – shabareesh 2014-10-01 07:17:26