我爲供應商創建了一個HTML5在線門戶,他們可以根據需要上傳和下載任意數量的文件。不幸的是我不允許向你展示截圖。但是這裏有問題: 如果有2個或更多文件上傳,那麼程序應該創建一個包含所有PDF的.zip文件。它得到正確創建和文件都在裏面,但他們是腐敗的,意味着我無法打開它們。除此之外,他們得到1 KB的文件大小。已下載的.zip中的PDF已損壞
String zipFile = String.Format(@"{0}.zip", Guid.NewGuid());
String zipPath = String.Format(@"{0}\{1}", Data.Properties.Settings.Default.DownloadPath, zipFile);
using (FileStream zipToOpen = new FileStream(zipPath, FileMode.CreateNew))
{
using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Create))
{
using (SqlConnection con = new SqlConnection(Data.Properties.Settings.Default.SelectionTMPDatabase))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(String.Format("SELECT [FileName], [File] FROM {0} WHERE [DownloadId] = @downloadId", Data.Properties.Settings.Default.SelectionFileDatabaseTable), con))
{
cmd.Parameters.AddWithValue("@downloadId", downloadID);
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
if (dr["FileName"] != null && dr["FileName"] != DBNull.Value && fileNames.Contains(dr["FileName"].ToString()))
{
ZipArchiveEntry entry = archive.CreateEntry(dr["FileName"].ToString());
using (StreamWriter writer = new StreamWriter(entry.Open()))
{
writer.Write((byte[])dr["File"]);
}
這就是創建.zip的部分。我希望你可以幫助我!如果你有問題,就問吧!
我首先重構,以減少嵌套。拆分從數據庫中檢索數據並將其寫入文件 –
您確定'dr [「File」]'中的字節數組是否包含全部字節? –