2015-01-14 139 views
-1

從我的手機中,我正在使用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

是否有人知道爲什麼我有嗎?

感謝

+0

我猜你的要求太LARG(從PHP confie).chek PHP設置 –

+0

我沒有列入我的php.ini文件中的「的post_max_size」。我讀過它,默認值是8M。這應該足夠用於字符串。 無論如何,我添加了該字段並放置了「12M」,因爲它需要高於已經設置爲10M的「upload_max_filesize」。 不幸的是,它沒有奏效。 :-( 其他建議? – David

+0

首先檢查databse.insert在base64代碼表中的圖像,並嘗試讀取它由php –

回答

0

你爲什麼不試試Cordova File Transfer Plugin到圖像文件上傳到服務器,檢索使用$ _FILE文件,其隱蔽到blob對象和存儲。

+0

是的,剛剛發現這個週末。謝謝 – David

0

我發現我爲什麼得到那個錯誤!我使用的base64圖像只是隨機字符,這導致了問題。

相關問題