5
A
回答
7
Here's a Microsoft Knowledge Base article on this.
如何從數據庫中檢索文件取決於您使用的數據訪問技術;我只假設你有一些字節數組data
包含文件(例如通過填充數據集並訪問字段)和一些字符串filename
。
Response.Clear()
Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment;filename=""" & filename & """")
Response.BinaryWrite(data)
Response.End()
把上面的代碼放在一些download.aspx
並鏈接到這個文件。您可能希望將一些查詢字符串信息傳遞給您的download.aspx,以便您的代碼知道從數據庫中獲取哪個文件。
3
將數據讀入一個文件流對象,並附加適當的擴展名,並讓用戶下載結果文件。
你要使用System.IO的BinaryWriter對象上的FILESTREAM創建文件......像這樣:
FileStream fs = new FileStream("thisfile.bin", FileMode.Create);
binWriter= new BinaryWriter(fs);
binWriter.Write(varHoldingSqlRetrievedBinaryData);
2
向您的網站添加一個通用處理程序(.ashx)頁面。下面的ASHX代碼體演示瞭如何讀取(在這種情況下,從磁盤PNG文件)的任意流並寫入在響應:如證明
using System;
using System.Web;
using System.IO;
namespace ASHXTest
{
public class GetLetter : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// Get letter parameter from query string.
string fileName = context.Request.MapPath(string.Format("{0}.png",
context.Request.QueryString["letter"]));
// Load file from disk/database/ether.
FileStream stream = new FileStream(fileName, FileMode.Open,
FileAccess.Read);
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
stream.Close();
// Write response headers and content.
context.Response.ContentType = "image/png";
context.Response.OutputStream.Write(buffer, 0, buffer.Length);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
如果需要,還可以設置Content-Disposition
頭Heinzi的回答:
context.Response.AddHeader("Content-Disposition",
"attachment;filename=\"letter.png\"");
相關問題
- 1. 如何以zip格式下載以二進制格式存儲在數據庫中的文件
- 2. 如何從私人Github存儲庫下載二進制文件?
- 3. 如何以二進制格式下載xml文件?
- 4. PHP - Doctrine存儲文件(數據庫中的二進制文件)
- 5. Rails:在數據庫中存儲二進制文件
- 6. 如何在結構中存儲二進制文件數據?
- 7. 存儲和檢索數據庫中的二進制文件(fpt)
- 8. 如何將文本和二進制文件存儲在hsqldb數據庫中?
- 9. 在貓鼬模式下以二進制數據存儲圖像文件並以html格式顯示圖像
- 10. SQL Server的二進制文件存儲
- 11. 如何在數據庫中存儲二進制文件的輸出
- 12. 如何以二進制形式存儲數據?
- 13. 從數據庫中下載二進制文件
- 14. 如何在Python中以二進制格式讀取二進制文件?
- 15. osx下的二進制文件格式
- 16. 如何導入數據庫的轉儲二進制文件
- 17. 如何存儲和下載數據庫中的zip文件postgres
- 18. 如何在azure sql數據庫中存儲大型二進制對象?
- 19. 將時間序列數據存儲在數據庫或二進制文件中
- 20. TFS如何存儲二進制文件
- 21. 如何從二進制數據中找到文件格式
- 22. 在mysql中存儲二進制數據
- 23. 如何在C++中以二進制格式打包數據
- 24. 如何使用LibGit2Sharp從Git存儲庫中獲取文件二進制數據?
- 25. 從外部URL以二進制形式在數據庫中存儲圖像
- 26. 可以將二進制文件放在nexus存儲庫上嗎?
- 27. 二進制文件下載
- 28. 如何在二進制文件中存儲有序整數集?
- 29. 以二進制格式存儲字符串在MySQL中
- 30. 將二進制數據作爲字符串存儲在Web Sql數據庫中
那麼我怎樣才能從二進制數據擴展? – Tarik 2009-12-14 18:00:27
你可以提供一個示例代碼,因爲我知道你在說什麼,但是在代碼方面,我可能需要一個例子:( – Tarik 2009-12-14 18:02:39
有沒有辦法這樣做,最好的方法是將擴展名存儲在數據庫中) – 2009-12-14 18:05:18