日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

js图片压缩java上传,JS实现异步上传压缩图片

發布時間:2025/3/15 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js图片压缩java上传,JS实现异步上传压缩图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要: 使用iframe來處理異步上傳圖片,在現在這個時代來說,多多少少都有點落后了!單單就憑AJAX和JS就不能做到異步上傳圖片了嗎?

先看調用頁面:

選擇圖片

var img;

$("input:file").change(function (){

//console.log(this.files[0]);

lrz(this.files[0],{width:640,quality:0.9},function(rst){

img = rst.base64;

var html = [];

var show_img = new Image();

show_img.src = rst.base64;

$("#img_show").html("

$(".upimg").html(show_img);

});

});

$("#form").submit(function (){

var phone = $("input[name='phone']").val();

var month = $("input[name='month']").val();

$.post("upload.php",{img:img,phone:phone,month:month},function(data){

img = null;

alert(data.msg);

},'json');

return false;

});

1.首先你要載入JS類庫:

2.然后就是寫好form

3.準備處理圖片以及圖片異步提交的JS。

var img;

$("input:file").change(function (){

//console.log(this.files[0]);

lrz(this.files[0],{width:640,quality:0.9},function(rst){

img = rst.base64;

var html = [];

var show_img = new Image();

show_img.src = rst.base64;

$("#img_show").html("

$(".upimg").html(show_img);

});

});

$("#form").submit(function (){

var phone = $("input[name='phone']").val();

var month = $("input[name='month']").val();

$.post("upload.php",{img:img},function(data){

img = null;

alert(data.msg);

},'json');

return false;

});

從代碼中可以看出,這個JS庫是把圖片轉成碼,然后用變量存起來,然后在用異步POST到服務器中在處理。

看起來貌似沒有什么特別的地方,的確實在也沒有什么特別的地方.......

后臺處理程序PHP:

function error($msg=''){

$return = array('msg'=>$msg);

echo json_encode($return);

exit();

}

function main(){

if(!$_POST['img']){

error('請上傳圖片!');

}

$img = $_POST['img'];

$path = './upload/';

$type_limit = array('jpg','jpeg','png');

if(preg_match('/data:\s*image\/(\w+);base64,/iu',$img,$tmp)){

if(!in_array($tmp[1],$type_limit)){

error('圖片格式不正確,只支持jpg,jpeg,png!');

}

}else{

error('抱歉!上傳失敗,請重新再試!');

}

$img = str_replace(' ','+',$img);

$img = str_replace($tmp[0], '', $img);

$img = base64_decode($img);

$file = $path.time().'.'.$tmp[1];

if(!file_put_contents($file,$img)){

error('上傳圖片失敗!');

}else{

error('恭喜您!上傳成功!');

}

}

main();

上述代碼如果有錯誤歡迎指出。

如上訴代碼,正如你看到的那樣,經過BASE64加密過的圖片碼經過JS異步的POST過來后端后,我們要把代碼還原。但是JS庫加密的時候會帶有一些標簽,所以還原前需要處理掉這些本來不屬于圖片的東西。

$img = str_replace(' ','+',$img);

$img = str_replace($tmp[0], '', $img);

$img = base64_decode($img);

最后把代碼塞進文件,設置好相應的文件名和擴展名,圖片就成功上傳到了服務器了。

注意:

前后端包括JS編碼要要一致,建議UTF-8

如果圖片還原不會來的話,那肯定是數據問題,打印POST過來的圖片碼出來看看。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的js图片压缩java上传,JS实现异步上传压缩图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。