2010-08-05 113 views
0

我正在使用ASP.NET和C#。在ASP.NET中檢索上傳的文件

我已經做了一個文件上傳頁面,其中使用可以上傳他們的文件。我保存在數據庫中的三個字段,

  1. 文檔名稱[NVARCHAR]
  2. 文件[圖片]
  3. DocumentType [NVARCHAR]

現在,我可以在添加記錄數據庫,成功。現在我想在gridview中顯示它,例如DocumentName,DocumentType和下載文件的鏈接。

我試圖通過檢索記錄並將它們分配給gridview,但我只得到兩列。

+0

我認爲你需要手動創建下載文件的鏈接。我不認爲'GridView'可以自動爲你做這個。 – bzlm 2010-08-05 10:30:42

+0

我創造了這個: Rahul 2010-08-05 10:36:31

+0

看起來不錯。它工作嗎? – bzlm 2010-08-05 10:49:04

回答

0

您必須創建一個下載處理程序來爲實際文件提供服務。

處理程序可以從表中檢索二進制文件,並直接寫入輸出流。然後

網格視圖將指向此處理

+0

您能否請我重溫我的任何example.I不知道如何創建下載處理程序。 – Rahul 2010-08-05 10:37:34

+0

我可以使用它嗎? http://aspnetupload.com/Quickstart/Download-From-File.aspx 我會在linkbutton click事件中編寫代碼。 – Rahul 2010-08-05 10:39:26

0

既然你是存儲DB文件,你將不得不編寫代碼來讀取文件數據,添加適當的頭,做RESPONSE.WRITE

例如

你的LinkBut​​ton的點擊處理程序的代碼會像

private void lnkDownload_Click(object sender,args) 
{ 

//if you are using dataset the data will be of type byte array byte[] 
//assuming you have assign the binary data to byte array 

byte[] data; 
Response.Clear(); //clear buffer 
Response.ContentType = "image/gif"; //should be the MIME type of the document see http://www.w3schools.com/media/media_mimeref.asp for the complete list 
Response.AddHeader("content-disposition", "attachment;filename=" + yourfilename); //tell the browser the file is to be downloaded 
Response.BinaryWrite(data); 
Response.End(); 

}