当您将 NavigateUrl 设置为 FullPath 时,Chrome 将看到访问该站点的用户计算机的本地链接,而不是服务器本身。
因此,您始终需要将任何超链接的 URL 设为 //someURL 或http://someurl
在您的情况下,您必须删除NavigateUrl
并添加一个OnClick
处理程序,在处理程序内部,您将使用 FileStream 读取文件并将文件内容写入响应流,然后刷新它
点击处理程序的示例:
context.Response.Buffer = false;
context.Response.ContentType = "the file mime type, ex: application/pdf";
string path = "the full path, ex:E:\PINCDOCS";
FileInfo file = new FileInfo(path);
int len = (int)file.Length, bytes;
context.Response.AppendHeader("content-length", len.ToString());
byte[] buffer = new byte[1024];
Stream outStream = context.Response.OutputStream;
using(Stream stream = File.OpenRead(path)) {
while (len > 0 && (bytes =
stream.Read(buffer, 0, buffer.Length)) > 0)
{
outStream.Write(buffer, 0, bytes);
len -= bytes;
}
}