欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP傳輸base64數(shù)據(jù)不完整的解決方法

 更新時間:2024年05月29日 10:02:16   作者:德宏大魔王  
最近在做OCR增值稅務(wù)處理時,接口是通過圖片轉(zhuǎn)base64提交處理然后返回數(shù)據(jù)的,通過在線工具進行測試,發(fā)現(xiàn)傳遞過去的數(shù)據(jù)可以使用,接收到的數(shù)據(jù)卻提示損壞,所以本文給大家介紹了PHP傳輸base64數(shù)據(jù)不完整的解決方法,需要的朋友可以參考下

前言

最近在做OCR增值稅務(wù)處理時,接口是通過圖片轉(zhuǎn)base64提交處理然后返回數(shù)據(jù)的,我通過前端將圖片轉(zhuǎn)換為base64提交到后端接收時,通過在線工具進行測試,發(fā)現(xiàn)傳遞過去的數(shù)據(jù)可以使用,接收到的數(shù)據(jù)卻提示損壞

解決辦法

<?php
header('Content-Type: text/html; charset=utf-8');
header('Access-Control-Allow-Origin: *'); // 允許任何網(wǎng)址請求
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE'); // 允許請求的類型
header('Access-Control-Allow-Credentials: true'); // 設(shè)置是否允許發(fā)送 cookies
header('Access-Control-Allow-Headers: Content-Type, Content-Length, Accept-Encoding, X-Requested-with, Origin'); // 設(shè)置允許自定義請求頭的字段


// 接收POST數(shù)據(jù)

$base64=$_POST['base'];

替換為以下代碼:

<?php
header('Content-Type: text/html; charset=utf-8');
header('Access-Control-Allow-Origin: *'); // 允許任何網(wǎng)址請求
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE'); // 允許請求的類型
header('Access-Control-Allow-Credentials: true'); // 設(shè)置是否允許發(fā)送 cookies
header('Access-Control-Allow-Headers: Content-Type, Content-Length, Accept-Encoding, X-Requested-with, Origin'); // 設(shè)置允許自定義請求頭的字段


// 接收POST數(shù)據(jù)
$postData = file_get_contents('php://input');
$base64=urldecode($postData);
$new_base64 = substr($base64, 27); 

即可解決

拓展知識

BASE64解碼后的圖片顯示不完整問題

BASE64解碼后的圖片顯示不完整

從前端獲取base64信息就后用以下代碼進行處理,發(fā)現(xiàn)解析出來的圖片會損壞。

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) {// 調(diào)整異常數(shù)據(jù)  
					        	bytes[j] += 256;  
					        }  
					  }

導(dǎo)致?lián)p壞可能為以下原因

一:需要去掉如下頭部信息。

二:

因為ajax在傳輸過程中加號會變成空格而base64里是有加號的,所以在ajax傳輸前先要對base64進行編碼,把加號替換成%2B的url編碼。
var img = imageData.replace(/+/g,"%2B");
imageData就是原始的base64碼

以上就是PHP傳輸base64數(shù)據(jù)不完整的解決方法的詳細內(nèi)容,更多關(guān)于PHP base64數(shù)據(jù)不完整的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • php 全文搜索和替換的實現(xiàn)代碼

    php 全文搜索和替換的實現(xiàn)代碼

    方便替換和全文索引
    2008-07-07
  • PHP讀取和寫入CSV文件的示例代碼

    PHP讀取和寫入CSV文件的示例代碼

    CSV(逗號分隔值)文件是使用逗號分隔信息的文本文件。該文件的每一行都是一條數(shù)據(jù)記錄,也就意味著它可以用于以表格的形式展現(xiàn)信息。本文主要介紹了PHP讀取和寫入CSV文件的方法,需要的可以參考一下
    2023-04-04
  • 深入理解PHP之require/include順序 推薦

    深入理解PHP之require/include順序 推薦

    在大型的Web項目中, include_path是一個模塊化設(shè)計的根本中的根本(當(dāng)然,現(xiàn)在也有很多基于autoload的設(shè)計, 這個不影響本文的探討), 但是正是因為include_path, 經(jīng)常會讓我們遇到一些因為沒有找到正確的文件而導(dǎo)致的看似”詭異”的問題.
    2011-01-01
  • 深入解析phpCB批量轉(zhuǎn)換的代碼示例

    深入解析phpCB批量轉(zhuǎn)換的代碼示例

    本篇文章是對phpCB批量轉(zhuǎn)換的代碼示例進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • php動態(tài)生成版權(quán)所有信息的方法

    php動態(tài)生成版權(quán)所有信息的方法

    這篇文章主要介紹了php動態(tài)生成版權(quán)所有信息的方法,實例分析了php時間與字符串的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • php簡單實現(xiàn)無限分類樹形列表的方法

    php簡單實現(xiàn)無限分類樹形列表的方法

    這篇文章主要介紹了php簡單實現(xiàn)無限分類樹形列表的方法,實例分析了php通過數(shù)組實現(xiàn)樹形列表的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • PHP緩存工具XCache安裝與使用方法詳解

    PHP緩存工具XCache安裝與使用方法詳解

    這篇文章主要介紹了PHP緩存工具XCache安裝與使用方法,較為詳細的分析了緩存工具XCache在Windows及Linux平臺安裝與Xcache操作封裝類實例,需要的朋友可以參考下
    2018-04-04
  • 淺談ThinkPHP中initialize和construct的區(qū)別

    淺談ThinkPHP中initialize和construct的區(qū)別

    下面小編就為大家?guī)硪黄獪\談ThinkPHP中initialize和construct的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • php反彈shell實現(xiàn)代碼

    php反彈shell實現(xiàn)代碼

    遇到一個BT的網(wǎng)站,上傳php文件成功之后,每訪問一次,文件名就會隨機改變一次,并且你訪問當(dāng)前文件如果點其他操作項,文件仍然會改名。
    2009-04-04
  • 一文詳解php中.env實現(xiàn)原理

    一文詳解php中.env實現(xiàn)原理

    在PHP中,.env文件是一種常見的配置文件格式,用于存儲應(yīng)用程序的環(huán)境變量,本文將給大家大家詳細的介紹一下php中.env實現(xiàn)原理,文中給出了簡單的示例代碼,需要的朋友可以參考下
    2024-01-01

最新評論