使用第三方组件:  ICSharpCode.SharpZipLib

给按钮绑定一个点击事件

后台处理:

 public ActionResult DownZip(string ids)
{
if (string.IsNullOrEmpty(ids))
return Content("请选择要操作的数据"); var idArr = ids.Split(Constant.SEPARATOR.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); #region
FileStream fs = null;
byte[] buffer = null;
string path = Server.MapPath("/Upload/Resource/压缩包.zip"); using (ZipFile file = ZipFile.Create(path))
{
file.BeginUpdate(); //通过这个名称格式化器,可以将里面的文件名进行一些处理。默认情况下,会自动根据文件的路径在zip中创建有关的文件夹。
file.NameTransform = new MyNameTransfom(); foreach (var id in idArr)
{
var model = new BLL.APPResourceBLL().GetModel(Convert.ToInt32(id));
file.Add(Server.MapPath(model.Path));
} file.CommitUpdate();
}
fs = new FileStream(path, FileMode.Open);
buffer = new byte[fs.Length];
fs.Position = ;
fs.Read(buffer, , buffer.Length);
fs.Close();
Response.Charset = "UTF-8";
Response.Buffer = false;
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=压缩包.zip");
Response.BinaryWrite(buffer);
Response.Flush();
Response.End();
return new EmptyResult();
#endregion
}

前台:

 function downZipEvent() {
if ($(".checkall:checked").size() < 1) {
$.dialog.alert('请选择下载文件!');
return false;
}
var ids = '';
$.each($(".checkall:checked"), function () {
ids += $(this).attr('typeid') + ',';
}) var form = $("<form>");
form.attr("style", "display:none");
form.attr("target", "");
form.attr("method", "post");
form.attr("action", "/AppManage/AppResource/DownZip");
var input1 = $("<input>");
input1.attr("type", "hidden");
input1.attr("name", "ids");
input1.attr("value", ids);
$("body").append(form);
form.append(input1);
form.submit();
form.remove();
}

参考: http://blog.csdn.net/kongwei521/article/details/51167903

      http://www.jb51.net/article/74867.htm

      http://www.cnblogs.com/kissdodog/p/3525295.html

总结:当以提交表单形式发送后台,可以直接调取浏览器下载;

异步的方式则无法直接调用, 可以返回状态,以表单形式在异步请求一次.

 $.get('/CheckBill/CompareBill', { billDate: billDate, type: type }, function (data) {
  var temp = data.split(':');
if (temp[0] == "ok") {
  $('#total').text(temp[1]);
  $.dialog.alert('对账成功');
} else if (temp[0] == "ex") {
$.dialog.alert(temp[1]);
subDown(billDate);
}
else {
  $.dialog.alert(data);
}
})

ajax异步加载:

https://www.cnblogs.com/wt627939556/p/6287242.html

http://www.jb51.net/article/46535.htm

https://www.cnblogs.com/fastmover/p/4791408.html

使用Jquery Ajax请求 下载压缩文件的更多相关文章

  1. Ajax 请求下载 Execl 文件

    通过Ajax请求下载Execl 的问题,掉进一个坑里半个多小时,特此来记录一下 . 起初  我误以为是后台的问题,然而调试了一下并不是这样的,也不会报错,且进入了success 函数. 以下的事件及请 ...

  2. jquery ajax请求方式与提示用户正在处理请稍等,等待数据返回时loading的显示

    1.jquery ajax请求方式与提示用户正在处理请稍等 为了提高用户体验度,我们通常会给出 “正在处理,请稍等!”诸如此类的提示.我们可通过设置$.ajax()下的参数beforeSend()来实 ...

  3. jQuery ajax读取本地json文件

    jQuery ajax读取本地json文件 json文件 { "first":[ {"name":"张三","sex": ...

  4. jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

    1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是“a ...

  5. SSM框架下,使用ajax请求上传文件(doc\docx\excel\图片等)

    1.准备工作 1.1.添加上传必要jar包 <dependency> <groupId>commons-io</groupId> <artifactId> ...

  6. 使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载

    使用java的 htpUrlConnection post请求 下载pdf文件,然后输出到页面进行预览和下载 2018年06月07日 10:42:26 守望dfdfdf 阅读数:235 标签: jav ...

  7. jQuery ajax 请求php遍历json数组到table中

    html代码(test.html),js在html底部 <!DOCTYPE html> <html lang="en"> <head> < ...

  8. jquery Ajax请求示例,jquery Ajax基本请求方法示例

    jquery Ajax请求示例,jquery Ajax基本请求方法示例 ================================ ©Copyright 蕃薯耀 2018年5月7日 https: ...

  9. 原生js,jquery ajax请求以及jsonp的调用

    ajax    是用来处理前后端交互的技术,可以改善用户体验,其本质是    XMLHttpRequest,异步访问服务器并发送请求数据,服务器返回响应的数据,以页面无刷新的效果改变页面中的局部内容  ...

随机推荐

  1. Codeforces Round #454

    Masha and Bears Tic-Tac-Toe Shockers Seating of Students Party Power Tower Reverses

  2. BZOJ1096: [ZJOI2007]仓库建设(dp+斜率优化)

    Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5790  Solved: 2597[Submit][Status][Discuss] Descript ...

  3. 使用Caffe预测遇到的问题

    1. 在使用网络预测图像时, prediction = net.predict( [input_image] ) 出现: net.image_dims[0] 不是整数情况, (2).甚至以为np.ze ...

  4. H5动效的常见制作手法

    众所周知,一个元素,动往往比静更吸引眼球: 一套操作界面,合适的动态交互反馈能给用户带来更好的操作体验: 一个H5运营宣传页,炫酷的动画特效定能助力传播和品牌打造. 近两年,小到loading动画,表 ...

  5. (转)基于MVC4+EasyUI的Web开发框架经验总结(7)--实现省份、城市、行政区三者联动

    http://www.cnblogs.com/wuhuacong/p/3841338.html 为了提高客户体验和进行一些技术探索,现在正准备把我自己的客户关系管理系统CRM在做一个Web的版本,因此 ...

  6. 通过nvm 切换 npm 版本

    通过 nvm-windows 更新 npm 1.先安装 nvm-windows .成功后可在命令窗口 输入nvm 查看到 nvm的版本号. 2..在命令窗口输入 nvm list,查看当前使用的 no ...

  7. 超实用的JavaScript代码段

    1. 判断日期是否有效 JavaScript中自带的日期函数还是太过简单,很难满足真实项目中对不同日期格式进行解析和判断的需要.JQuery也有一些第三方库来使日期相关的处理变得简单,但有时你可能只需 ...

  8. day09网络编程

    一 操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...

  9. 洛谷P3195 [HNOI2008]玩具装箱TOY 斜率优化

    Code: #include<cstdio> #include<algorithm> using namespace std; const int maxn = 100000 ...

  10. [poj 2411]Mondriaan's Dream (状压dp)

    Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 18903 Accepted: 10779 D ...