ajax实现文件下载

时间:2023-03-09 17:05:03
ajax实现文件下载

前台:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="../../Lib/jquery.js"></script>
    <script>
        $(document).ready(function ()
        {
            $("#Button1").click(function ()
            {
                location.href = 'Web7.ashx'
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id="Button1" type="button" value="下载" />
    </div>
    </form>
</body>
</html>

一般处理程序

string s_fileName = "交代事项需求.docx";
            HttpContext.Current.Response.ContentType = "application/ms-download";
            string s_path = HttpContext.Current.Server.MapPath( s_fileName ) ;
            System.IO.FileInfo file = new System.IO.FileInfo( s_path );
            HttpContext.Current.Response.Clear( );
            HttpContext.Current.Response.AddHeader( "Content-Type" , "application/octet-stream" );
            HttpContext.Current.Response.Charset = "utf-8";
            HttpContext.Current.Response.AddHeader( "Content-Disposition" , "attachment;filename="
          + System.Web.HttpUtility.UrlEncode("abc.docx" , System.Text.Encoding.UTF8 ) );
            HttpContext.Current.Response.AddHeader( "Content-Length" , file.Length.ToString( ) );
            HttpContext.Current.Response.WriteFile( file.FullName );
            HttpContext.Current.Response.Flush( );
            HttpContext.Current.Response.Clear( );
            HttpContext.Current.Response.End( );