下载文件:AJAX下载效果

    //下载
    function Download(id) {
        var form = $("<form>");   //定义一个form表单
        form.attr('style', 'display:none');   //在form表单中添加查询参数
        form.attr('target', '');
        form.attr('method', 'post');
        form.attr('action', "/task/DetailDownload");
        var input1 = $('<input>');
        input1.attr('type', 'hidden');
        input1.attr('name', 'id');
        input1.attr('value', id);
        $('body').append(form);  //将表单放置在web中
        form.append(input1);   //将查询参数控件提交到表单上
        form.submit();
    }


MVC 控制器 那里的代码

        #region 详情-下载
        public void DetailDownload(int id)
        {
            Model.Attachment entity = am.GetByAttachmentID(id);
            string fileName = entity.AttachmentName.Split('/')[1];//客户端保存的文件名
            string filePath = Common.ConfigHelper.GetConfigString("picUpload") + "/Attachment/" + entity.AttachmentName;
            //以字符流的形式下载文件
            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();

        }
        #endregion

 

posted @ 2014-09-12 15:00  JamsBangdong  阅读(201)  评论(0编辑  收藏  举报