從我的手機中,我正在使用ngcordova拍照並將其轉換爲base64。這工作完美,並可以顯示在我的手機應用程序剛纔。將base64映像上傳到php服務器並保存到MySql
現在,我試圖以base64字符串發送給我的與$ HTTP從angularjs PHP服務器,但由於某種原因,它不會接受它。這是代碼。
var request = $http({
method: "post",
url: mainUrl + "spus.php",
params: {
action: "saveLocationPicture",
locationPicture: spuInfo.locationPicture <-- "data:image/png;base64,/9j/44AQSk..."
}
});
我說,PHP服務器沒有收到它,但我認爲這是不正確的。爲什麼?因爲如果我發送一個較短的字符串(小於835個字符),PHP服務器會收到它並將其保存到MySql數據庫中。爲了測試,我在MySql表中創建了2列。一個是LongBlob類型,另一個是LongText。它應該有足夠的空間。 ;-)
首先,沒有任何限制的字符串可以發送到$ HTTP「PARAMS」?
如果是這樣,限制是多少?
也許這是我不能處理長的base64字符串PHP服務器的配置?你怎麼看?
感謝
******** UPDATE *******
大家好,
我找到了部分解決方案,到目前爲止,並希望與大家分享。
我現在可以做的是把我的大的base64圖像到我的PHP服務器:
var request = $http({
method: "post",
url: mainUrl + "spus.php",
data: {
action: "saveLocationPicture",
hw_id: spuInfo.hw_id,
locationPicture: spuInfo.locationPicture
}
});
而且,在我的PHP代碼:
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$action2 = $request->action;
$hw_id2 = $request->hw_id;
$locationPicture = $request->locationPicture;
現在,我看到的唯一問題是,這在Chrome調試控制檯視圖:
GET數據:圖像/ PNG; BASE64,/ 9J/4AAQSkZJRgABAgAAAQABAADFQWERTYUIOPHGJTIYKHMBFHTYF ... kZJRgABAgAAAQABAAD // gAEKgD/4gIcSUNDX1BST0ZJTEUAAQEAAAIMbGNtcwIQFFFFFFFFFFF網:: ERR_INVALID_URL
是否有人知道爲什麼我有嗎?
感謝
我猜你的要求太LARG(從PHP confie).chek PHP設置 –
我沒有列入我的php.ini文件中的「的post_max_size」。我讀過它,默認值是8M。這應該足夠用於字符串。 無論如何,我添加了該字段並放置了「12M」,因爲它需要高於已經設置爲10M的「upload_max_filesize」。 不幸的是,它沒有奏效。 :-( 其他建議? – David
首先檢查databse.insert在base64代碼表中的圖像,並嘗試讀取它由php –