需要在前台的html中进行设置,将onclick事件指向download_file函数并在download_file中调用后台DownLoadFile函数,以此来实现a标签中下载文件而不是打开文件。
具体代码如下:
<!----------html中调用-------------->
<a href='javascript:void(0);' title='" + obj[i].cFilePath + "' οnclick=\"" + "download_file('KnowledgeCheckHandler.ashx?flag=D&FileNewName=" + obj[i].cFileNewName + "&Pub=" + obj[i].cpublisher + "&FileOldName=" + obj[i].cFileOldName + "');\"" + ">" + obj[i].cFileOldName + "</a><!----------------前台js----------------->
function download_file(url) {
//alert('dasd');
if (typeof (download_file.iframe) == "undefined") {
var iframe = document.createElement("iframe");
download_file.iframe = iframe;
document.body.appendChild(download_file.iframe);
}
download_file.iframe.src = url;
download_file.iframe.style.display = "none";
}
<!--------------------------------->
///后台
private void DownLoadFile(HttpContext context, string FileNewName, string FileOldName, string Pub)
{
try
{
string fileName = FileOldName;//客户端保存的文件名
string path = @"../FileUpLoad/" + Pub + "/" + FileNewName;
string filePath = context.Server.MapPath(path);//路径
//以字符流的形式下载文件
System.IO.FileStream fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
context.Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
context.Response.BinaryWrite(bytes);
context.Response.Flush();
context.Response.End();
}
catch (Exception e) { }
}
需要在前台的html中进行设置,将onclick事件指向download_file函数并在download_file中调用后台DownLoadFile函数,以此来实现a标签中下载文件而不是打开文件。
具体代码如下:
<!----------html中调用-------------->
<a href='javascript:void(0);' title='" + obj[i].cFilePath + "' οnclick=\"" + "download_file('KnowledgeCheckHandler.ashx?flag=D&FileNewName=" + obj[i].cFileNewName + "&Pub=" + obj[i].cpublisher + "&FileOldName=" + obj[i].cFileOldName + "');\"" + ">" + obj[i].cFileOldName + "</a><!----------------前台js----------------->
function download_file(url) {
//alert('dasd');
if (typeof (download_file.iframe) == "undefined") {
var iframe = document.createElement("iframe");
download_file.iframe = iframe;
document.body.appendChild(download_file.iframe);
}
download_file.iframe.src = url;
download_file.iframe.style.display = "none";
}
<!--------------------------------->
///后台
private void DownLoadFile(HttpContext context, string FileNewName, string FileOldName, string Pub)
{
try
{
string fileName = FileOldName;//客户端保存的文件名
string path = @"../FileUpLoad/" + Pub + "/" + FileNewName;
string filePath = context.Server.MapPath(path);//路径
//以字符流的形式下载文件
System.IO.FileStream fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
context.Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
context.Response.BinaryWrite(bytes);
context.Response.Flush();
context.Response.End();
}
catch (Exception e) { }
}