VS2012 ASP.NET 웹 사이트를 사용하고 있으며 폴더에 파일을 업로드하는 asp.net 페이지가 있습니다.ASP.Net의 데이터베이스에 저장된 파일 경로를 사용하여 파일을 다운로드하십시오.
파일을 업로드하면 ~/Client_Info/text.docx
과 같은 SQL 데이터베이스 테이블 필드에 경로가 저장되고 파일 자체가 폴더에 저장됩니다.
다운로드 링크가있는 gridview에 저장하여 저장 한 파일을 다운로드하고 싶습니다. 그러나 하루 종일 검색 한 후에 나는 대답을 얻을 수 없습니다. 누군가 나를 도울 수 있습니까?
protected void lnkDownload_Click(object sender, EventArgs e)
{
LinkButton lnkbtn = sender asLinkButton;
GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
int fileid = Convert.ToInt32(gvDetails.DataKeys[gvrow.RowIndex].Value.ToString());
string name, type;
using (SqlConnection con=new SqlConnection(strCon))
{
using (SqlCommand cmd=new SqlCommand())
{
cmd.CommandText = "select FileName, FileType, FileData from FileInformation where [email protected]";
cmd.Parameters.AddWithValue("@id", fileid);
cmd.Connection = con;
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
if(dr.Read())
{
Response.ContentType = dr["FileType"].ToString();
Response.AddHeader("Content-Disposition",
"attachment;filename=\""
+ dr["FileName"] + "\"");
Response.BinaryWrite((byte[])dr["FileData"]);
Response.End();
}
}
}
}
[FileData] 열에 저장된 내용은 코드를 작성하는 중입니다. 그러나 파일 자체가 파일 시스템에 저장되어 있고 데이터베이스 테이블은 파일 정보 만 보유하고 있다고 명시합니다. 먼저 디스크에서 파일을 읽은 다음 응답에 기록해야합니다. –