回答
好吧,有幾件事你可能會嘗試做,它不完全清楚,但我會採取刺。比方說,你已經有了由文件標識符和二進制文件信息的以下基本數據庫:
CREATE TABLE Test
(
FileId int identity(1,1) PRIMARY KEY,
FileData varBinary(max)
)
你需要的是一個頁面(在這種情況下,所謂的「GetFile.aspx」)與在以下後臺代碼的Page_Load事件:
'Make sure we've got a querystring
If String.IsNullOrEmpty(Request.QueryString("fileid")) Then
Throw New ApplicationException("Missing querystring parameter FileId")
End If
Dim FileId As Integer
'Make sure the querystring is an Int
If Not Integer.TryParse(Request.QueryString("fileid"), FileId) Then
Throw New ApplicationException("Malformed querystring parameter FileId")
End If
'Change YourDsnHere to point to your database
Using Con As New SqlConnection("YourDsnHere")
Con.Open()
'Select the file
Using Com As New SqlCommand("SELECT * FROM Test WHERE [email protected]", Con)
Com.CommandType = Data.CommandType.Text
Com.Parameters.AddWithValue("@FileId", FileId)
Using RDR = Com.ExecuteReader()
If RDR.Read Then
'Get the data out as a byte array
Dim Bytes() = DirectCast(RDR.Item("FileData"), Byte())
'Clear all response headers
Response.Clear()
'Set the type, my sample is a RAR file, you'll need to look up MIME types for yours
Response.AddHeader("Content-Type", "application/x-rar-compressed")
'Set the name of the file, if you don't set it browsers will use the name of this page which you don't want
Response.AddHeader("Content-Disposition", "inline; filename=YourFilenameHere.rar")
'Optional but nice, set the length so users get a progress bar
Response.AddHeader("Content-Length", Bytes.Count.ToString())
'Push the bytes out raw
Response.BinaryWrite(Bytes)
'Close the response stream so no more HTML gets accidentally pushed out
Response.End()
Else
'Error, no file was found
End If
End Using
End Using
Con.Close()
End Using
然後在你的頁面只是當人點擊該按鈕引導他們到這個頁面,確保在查詢字符串傳遞一個有效fileid
。
就像我說的,我覺得這是,你在找什麼,如果不是,說明你的描述上面
好吧,如果你有一個腳本生成的文件,一個腳本表示,它輸出的最常用的方法是發送一個HTTP標頭看起來是這樣的:
Content-Type: text/html; charset=utf-8
這將使得瀏覽器顯示爲文本。爲了迫使[大多數瀏覽器]下載文件,你需要發送以下附加標題:
Content-Type: application/zip
Content-Disposition: inline; filename=test.zip
Content-Length: 8192
[FILE CONTENTS]
爲名爲「test.zip」一個8KB的ZIP文件的例子。如果您可以找到一些方法來更改使用生成該文件的腳本發送的標頭(即將其從數據庫中拉出),那麼它很可能會強制瀏覽器將其解釋爲要下載的文件。
然後,只需鏈接到您的標題中的腳本。
好的,但文件是在一個對象中,這是問題 – 2010-05-04 15:34:24
如果它是在爲生成鏈接的頁面定義的對象中,這將是一個問題。基本上,瀏覽器做事的方式必須將其重定向到單獨的頁面以啓動文件傳輸。 – amphetamachine 2010-05-08 21:16:58
- 1. 二進制文件下載
- 2. C++從http下載二進制文件
- 3. 如何從私人Github存儲庫下載二進制文件?
- 4. 從MySQL下載流二進制文件與PHP下載
- 5. Laravel從數據庫中下載文件
- 6. @ Url.Action從數據庫中下載文件
- 7. Android下載二進制文件問題
- 8. AFNetworking和下載二進制文件
- 9. 只下載telerik二進制文件
- 10. 使用Javascript下載二進制文件
- 11. 使用Wininet下載二進制文件
- 12. 通過Javascript將二進制數據作爲文件下載
- 13. php下載一個curl文件,返回二進制數據
- 14. 從網頁上的二進制數組下載文件
- 15. PHP - Doctrine存儲文件(數據庫中的二進制文件)
- 16. 通過ActiveRecord從文件加載二進制數據創建
- 17. WP7從數據庫檢索音頻二進制文件
- 18. 從數據庫問題索引二進制文件(無錯誤)
- 19. 從數據庫C打開二進制文件#
- 20. 從數據庫服務二進制文件用的Compojure
- 21. 如何允許下載文件,即從AJAX返回的二進制數據
- 22. 如何通過web服務從sql下載二進制(.txt文件)數據
- 23. 從混合數據文件中提取二進制數據
- 24. 從數據庫加載二進制文件,並將其作爲openxml處理
- 25. 從數據庫codeigniter下載文件
- 26. 從數據庫下載文件
- 27. 從Opa數據庫下載文件
- 28. 從MYSQL數據庫下載文件
- 29. 從PHP數據庫下載Excel文件
- 30. EOFException從二進制文件,學生數據庫中讀取UTF文件
你是什麼意思?頁面標題中的進度條? – codymanix 2010-05-04 15:24:18
是的,我已經從數據庫中讀取文件,我不會只是現在下載文件。 – 2010-05-04 15:33:06