关于图片上传,由于上传图片可能会很大,造成一些麻烦,所以一般压缩后在上传

这里用到的压缩图片的插件是:lrz.mobile.min.js (兼容IOS,android)

CSS:上传成功之前,可以展示上传中的laoding.gif图像设置img背景

background: rgba(0, 0, 0, 0) url(images/loading.gif) no-repeat center;

html结构:

<p>
<a href="javascript:void(0)" class="add">+<input type="file" /></a>
</p>

JS:

$(function(){
var str='';//用来记录上传成功的图片地址串
$('p').on('click','i',function(){
$(this).parent().remove();//用来移除图片的 x ×
})
/* 上传头像图片使用*/
function uploadImage(file_obj){
var b;
var $add_PIc=$(file_obj);//选择这个input元素
var fileType=$add_PIc.val().substr($add_PIc.val().lastIndexOf(".")).toLowerCase();//获得文件后缀名
if(fileType != '.gif' && fileType != '.png' && fileType != '.jpg' && fileType != '.jpeg' && fileType != 'bmp'){
alert("请选择正确格式的图片");
}else {
var fileName = file_obj.value;//文件名
var extension = new String(fileName.substring(fileName.lastIndexOf('.')+1,fileName.length)).toLowerCase();//文件拓展名
if (extension == 'jpg'||extension == 'jpeg'||extension == 'png'||extension == 'gif'||extension == 'bmp'){
//压缩图片
lrz($add_PIc[0].files[0], {
width: 700,//图片宽度
quality: 0.8 //图片质量
},
function(rst) {
var fileObj = rst.base64; //加密图片流
var FileController = "图片服务器地址";
// FormData 对象
var form = new FormData();
form.append("base64Code", fileObj); // 文件对象
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = zswFun;
xhr.open("post", FileController, false);
xhr.onload = function (data) {接收到服务器响应};
xhr.send(form);
function zswFun() {
if (xhr.readyState == 4 && xhr.status == 200) {
b = xhr.responseText.substring();
$('p').find('img').eq(0).attr('src',b);
}
}
$(file_obj).val("");//清空file对象
});
}
}
}

$("input[type=file]").change(function () {
var img='<div class="img-box"><i>×</i><img/></div>';
var $file = $(this);
var fileObj = $file[0];
$(this).parent().parent().prepend(img);
/*上传图片*/
uploadImage(this)
});
$('.submit').click(function(){
//将所有img的地址串写在str中
for(var i=0;i<$('p img').length;i++){
str+=$('p img').eq(i).attr('src')+','
}
str=str.substring(0,str.length-1);
if(text.length<10 ||text=='请输入不少于10个字的描述'){

$.ajax({
url:'地址',
type:'get',
dataType:'jsonp',
jsonp:'jsonpcallback',
data:{
data
},
success:function(data){
if(data.success&&data.result>0){
//提交成功
$('p').find('.img-box').remove();//清空内容
}else{
$('.mask').html(data.message).fadeIn(300);
}

},
error:function(data){
$('.mask').html('服务器离家出走了').fadeIn(300);
}
})

})
});

  

 

lrz.mobile.min.js