我有一个字符串变量(在C#中),它包含服务器上PDF文件的完整路径(像"~/doc/help.pdf")。
我希望在点击按钮时,此文件将下载到客户端计算机。
我创建了一个按钮,并在C#中设置了onClick事件。现在,我应该编写哪些代码才能实现这一点?
我有一个字符串变量(在C#中),它包含服务器上PDF文件的完整路径(像"~/doc/help.pdf")。
我希望在点击按钮时,此文件将下载到客户端计算机。
我创建了一个按钮,并在C#中设置了onClick事件。现在,我应该编写哪些代码才能实现这一点?
我想你正在寻找类似于这样的东西。
private void Button1_click(object sender, System.EventArgs e)
{
Response.ContentType = "Application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=help.pdf");
Response.TransmitFile(Server.MapPath("~/doc/help.pdf"));
Response.End();
}
Response.End();
。 - Krishanu Dey尝试在您的btn_Click
上使用以下代码:
Response.Redirect("~/doc/link.pdf");
void btnDownloadFile_Click(object sender, EventArgs e)
{
string strLocalFilePath = "~/doc/help.pdf";
string fileName = "help.pdf";
Response.Clear();
Stream iStream = null;
const int bufferSize = 64 * 1024;
byte[] buffer = new Byte[bufferSize];
int length;
long dataToRead;
try
{
iStream = new FileStream(strLocalFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
dataToRead = iStream.Length;
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
while (dataToRead > 0)
{
if (Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, bufferSize);
Response.OutputStream.Write(buffer, 0, length);
Response.Flush();
buffer = new byte[bufferSize];
dataToRead = dataToRead - length;
}
else
{
//prevent infinate loop on disconnect
dataToRead = -1;
}
}
}
catch (Exception ex)
{
//Your exception handling here
}
finally
{
if (iStream != null)
{
iStream.Close();
}
Response.Close();
}
}
string path;
string filename = "Page-3" + ".Pdf";
path = "~/H/Emp/" + filename.ToString();
Response.ContentType = "image/jpg";
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename.ToString());
Response.TransmitFile(Server.MapPath(path));
Response.End();
使用 ASP 按钮:
button.OnClientClick = string.Format("javascript:window.location='{0}'", pdfLink);
将按钮的onclick事件设置为此脚本:
onclick="javascript:window.location='/doc/help.pdf'"
<input type="button" onclick="javascript:window.location='<%=PDFLink %>'" />
其中PDFLink是代码后台中的字符串属性:
public string PDFLink
{
get
{
return "/doc/link.pdf";
}
}
从这里开始,如果需要的话,从数据库中获取字符串并将其呈现为绝对值应该是微不足道的。
Response.ContentType = "Application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=File_Name.pdf");
Response.TransmitFile(Server.MapPath("Folder_Name/File_Name.pdf"));
Response.End();