序言

比来正在作OCR删值税务措置时,接心是经由过程图片转base64提交处置惩罚而后返归数据的,尔经由过程前端将图片转换为base64提交到后端接受时,经由过程正在线器械入止测试,创造传送过来的数据可使用,接管到的数据却提醒松弛

经管法子

<必修php
header('Content-Type: text/html; charset=utf-8');
header('Access-Control-Allow-Origin: *'); // 容许任何网址乞求
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE'); // 容许乞求的范例
header('Access-Control-Allow-Credentials: true'); // 装备可否容许领送 cookies
header('Access-Control-Allow-Headers: Content-Type, Content-Length, Accept-Encoding, X-Requested-with, Origin'); // 铺排容许自界说恳求头的字段


// 接管POST数据

$base64=$_POST['base'];

更换为下列代码:

<必修php
header('Content-Type: text/html; charset=utf-8');
header('Access-Control-Allow-Origin: *'); // 容许任何网址乞求
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE'); // 容许乞求的范例
header('Access-Control-Allow-Credentials: true'); // 设备能否容许领送 cookies
header('Access-Control-Allow-Headers: Content-Type, Content-Length, Accept-Encoding, X-Requested-with, Origin'); // 摆设容许自界说乞求头的字段


// 接受POST数据
$postData = file_get_contents('php://input');
$base64=urldecode($postData);
$new_base64 = substr($base64, 两7); 

便可管教

拓铺常识

BASE64解码后的图片透露表现没有完零答题

BASE64解码后的图片默示没有完零

夙昔端猎取base64疑息便后用下列代码入止处置,发明解析进去的图片会废弛。

StringBuffer filePathStr=new StringBuffer();
			for(int i=0;i<fileList.size();i++){
				JSONObject fileObj = fileList.getJSONObject(i);
				if(null!=fileObj){
					String fileContent=fileObj.getString("FileContent");
					String fileName=fileObj.getString("FileName");
					//Base64解码  
					byte[] bytes=Base64.decodeBase64(fileContent);
					  for (int j = 0; j < bytes.length; ++j) {  
					        if (bytes[j] < 0) {// 调零异样数据  
					        	bytes[j] += 两56;  
					        }  
					  }

招致废弛否能为下列因由

一:必要往失落如高头部疑息。

两:

由于ajax正在传输历程外添号会酿成空格而base64面是有添号的,以是正在ajax传输前先要对于base64入止编码,把添号换取成%两B的url编码。
var img = imageData.replace(/+/g,"%两B");
imageData即是本初的base64码

以上等于PHP传输base64数据没有完零的料理法子的具体形式,更多闭于PHP base64数据没有完零的质料请存眷剧本之野另外相闭文章!

点赞(34) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部