php 或 js 計算base64 檔案流大小
//框架是tp5的 $base64 = input('img'); //接收圖片‘ //data:image/jpeg;base64 這裡要根據自己上傳的圖片格式進行相應的修改 $base64 = str_replace('data:image/jpeg;base64,', '' ,$base64); $base64 = str_replace('=', '',$base64); $img_len = strlen($base64); $file_size = $img_len - ($img_len/8)*2; $file_size = number_format(($file_size/1024),2).'kb'; if($file_size < 2048){ $arr = array( 'status' => 1, 'info' => '請上傳2M以下的圖片' ); return json($arr); }
附加 一段js計算base64檔案流大小,這裡有一個圖片裁剪過程,所以檔案獲取有點不一樣,詳細的可以看我的下一篇博文。
//這裡因為使用了圖片裁剪的外掛,所以檔案流是 dataURL
var strLen = dataURL.length;
var fileSize = strLen-(strLen/8)*2;
if(fileSize/1024 > 2048){
$(".ups1").text('請上傳小於2M的圖片!');
return false;
}else{
$(".ups1").text('正在上傳……');
}