日期:2014-05-16  浏览次数:20545 次

下载问题求解
后台
public void Xz(string id) 
        {
            Vuploadfile file = factory.GetUploadfileBusiness().GetById(id);
            string fileName = file.Mc;//客户端保存的文件名
            string filePath = Server.MapPath(file.Path);//路径
            //以字符流的形式下载文件
            FileStream fs = new FileStream(filePath, FileMode.Open);
            byte[] bytes = new byte[(int)fs.Length];
            fs.Read(bytes, 0, bytes.Length);
            fs.Close();
            Response.ContentType = "application/octet-stream";
            //通知浏览器下载文件而不是打开
            Response.AddHeader("Content-Disposition", "attachment;   filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
            Response.BinaryWrite(bytes);
            Response.Flush();
            Response.End();

        }

前台

    function xz(val, row, index) {


        return "<input id=\"xz\" type=\"button\" value=\"下载\" onclick=\"downloadFile('" + row.Id + "')\" />";
   }
   function downloadFile(id) {
       $.ajax({
            url: "/Manage/Uploadfile/Xz", //执行后台代码
            data:{id:id},
            type: "POST"
          
        });
    }  

进入方法了 但是走过就过了 也没弹出下载框··
------解决方案--------------------
你看看这个
------解决方案--------------------
使用ajax下载文件的话 需要模拟form提交~

比如
$("<form action='xx.aspx'><form>").submit();

简单的post请求是不可以下载文件的