图片压缩用到了localresizeimg 地址: https://github.com/think2011/localResizeIMG

用起来比较简单

  <input type="file" id="image1" class="hidden" accept="image/png,image/gif,image/jpeg" /
//图片压缩
$("input:file").change(function () {
var file = this.files[0];
lrz(file).then(function (res) {
//压缩成功
}).catch(function () {
//压缩失败
}).always(function () {
//成功失败都执行
})
});

完整代码

$("input:file").change(function () {
var self = $(this);
var file = this.files[0];
lrz(file).then(function (res) {
alert('压缩前' + (file.size / 1024).toFixed(2) + "kb");
alert('压缩后' + (res.fileLen / 1024).toFixed(2) + "kb");
var postData = new FormData();
postData.append("imgfile", res.file);
postData.append("name", file.name);//解决重命名的问题
$.ajax({
url: '/APP/Inventory/UploadImg',
data: postData,
type: 'post',
contentType: false,//禁止修改编码
processData: false,//不要把data转化为字符
beforeSend: function () { //加载层
layer.open({
type: 2,
shadeClose: false,
content: '上传中...'
});
},
success: function (data) {
data = eval("(" + data + ")");//返回的是json字符串,需要转为json对象
if (data.state == 1) {
self.prev().children("img").attr("src", res.base64); //预览
self.next().val(data.LogMessage);
}
else {
$alertMsg(data.message);
}
},
error: function () {
$alertMsg("上传失败,请重试!");
},
complete: function () {
console.log("上传结束");
layer.closeAll();
}
}); }).catch(function () {
console.log("失败");
}).always(function () {
self.val("");//清空上传控件
console.log("压缩完毕")
})
});

后台控制器

 public ActionResult UploadImg(HttpPostedFileBase imgfile, string name)
{
    // }

js图片压缩+ajax上传的更多相关文章

  1. 使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器

    使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器 ajax上传主要使用了 var reader = new FileReader() 此方法 js图片压缩主要是利用canvas进 ...

  2. 项目分享五:H5图片压缩与上传

    一.简介 图片的压缩与上传,是APP里一个很常用的功能.我们来年看 ChiTuStore 是怎样做的.相关文件 App/Module/User/UserInfo.html,App/Module/Use ...

  3. vue开发中vue-resource + canvas 图片压缩、上传、预览

    1.使用vue-resource上传,也可以自定义ajax上传: 2.使用<input type="file" @change="submit()" na ...

  4. (转)Android学习-使用Async-Http实现图片压缩并上传功能

    (转)Android学习-使用Async-Http实现图片压缩并上传功能 文章转载自:作者:RyaneLee链接:http://www.jianshu.com/p/940fc7ba39e1 让我头疼一 ...

  5. JS图片多个上传,并压缩为Base64

    首先是JS 批量上传 HTML <div id="Pic_pass"> <p style="font-size: 20px;font-weight: b ...

  6. H5图片压缩与上传

    接到需求,问前端是否可以压缩图片?因为有的图片太大,传到服务器上再压缩太慢了.意识里没有这么玩过,早上老大丢来一个知乎链接,一看,原来前辈们已经用canvas实现了(为自己的见识羞愧3秒钟,再马上开干 ...

  7. Android的图片压缩并上传

    Android开发中上传图片很常见,一般为了节省流量会进行压缩的操作,本篇记录一下压缩和上传的方法. 图片压缩的方法 : import java.io.ByteArrayOutputStream; i ...

  8. js图片压缩上传

    最近公司的移动产品相约app要做一次活动,涉及到图片上传,图片又不能太大,不然用户体验太差,必须先压缩再上传,所以用到了html5的canvas和FileReader,代码先上,小弟前端经验不足,代码 ...

  9. HTML5 file API加canvas实现图片前端JS压缩并上传

    一.图片上传前端压缩的现实意义 对于大尺寸图片的上传,在前端进行压缩除了省流量外,最大的意义是极大的提高了用户体验. 这种体验包括两方面: 由于上传图片尺寸比较小,因此上传速度会比较快,交互会更加流畅 ...

随机推荐

  1. AB PLC简述

    一.  PLC基础概念 PLC:可编程序控制器是一种数字运算的电子系统,专为在工业环境下应用而设计.采用可编程的存储器,用来在内部存储执行逻辑运算.顺序控制.定时.计算和算术运算等操作的指令,并通过数 ...

  2. Linux的IP详解

                        俗话说:黑发不知勤学早,白首方悔读书迟.                                                             ...

  3. rollup入门

    作为js程序员,掌握rollup是必要的. 有了webpack后,为什么还要用rollup, 因为webpack不专业,webpack是打包一切. rollup只为打包js而生. rollup通过的五 ...

  4. 【Servlet】The servlets named [ByteServlet] and [content.ByteServlet] are both mapped to the url-pattern [ByteServlet] which is not permitted

    创建时间:6.30 The servlets named [ByteServlet] and [content.ByteServlet] are both mapped to the url-patt ...

  5. linux 文件上传 linux服务器

    1.Linux下目录复制:本机->远程服务器 1 2 scp  -r /home/shaoxiaohu/test1  zhidao@192.168.0.1:/home/test2  #test1 ...

  6. Kubernetes Pod的数据卷Volume

    概述 由于容器本身是非持久化的,因此需要解决在容器中运行应用程序遇到的一些问题.首先,当容器崩溃时,kubelet将重新启动容器,但是写入容器的文件将会丢失,容器将会以镜像的初始状态重新开始:第二,在 ...

  7. The Best Blockchain Open Source Projects

    https://101blockchains.com/blockchain-open-source/ Blockchain has been the buzzword of the year for ...

  8. bootstrap基础自我总结

    *今天自学了一些封装的css,看起来官网很强大,但是因为源码备注都是英文的情况下,还是感觉想深入有点力不从心,发现度娘没有中文手册,无奈,不过还好代码无国界,基本都是能看懂的,备注也影响不大(安慰自己 ...

  9. python基础_格式化输出(%用法和format用法)(转载)

    python基础_格式化输出(%用法和format用法) 目录 %用法 format用法 %用法 1.整数的输出 %o -- oct 八进制%d -- dec 十进制%x -- hex 十六进制 &g ...

  10. IDEA调试进入class文件

    今天用IDEA调试时,一直进入class文件,而没有进入java文件. 错误原因 出现这种情况,有可能是Module有多个同名的依赖,调试时程序进入了同名的jar包里面,而不是同名的Module. 如 ...