Загрузите изображение base64 на php сервер и сохраните в MySql

С моего телефона я делаю снимок с помощью ngcordova и конвертирую его в base64. Это прекрасно работает и может отображаться в приложении для телефона сразу после него.

Сейчас я пытаюсь отправить строку base64 на мой PHP-сервер с помощью $ http от angularjs, но по какой-то причине он не получает ее. Вот код

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. Для теста я создал 2 столбца в таблице MySql. Один имеет тип LongBlob, а другой — LongText. Там должно быть много места. 😉

Прежде всего, есть ли какие-либо ограничения на строку, которую можно отправить в $ http «params»?

Если так, то каков предел?

Может быть, это моя конфигурация сервера PHP, которая не может обрабатывать длинную строку base64? Как вы думаете?

Спасибо

******** ОБНОВИТЬ *******

Всем привет,

Пока я нашел частичное решение и хотел бы поделиться с вами.

Теперь я могу отправить свое большое изображение 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:

ПОЛУЧИТЬ данные: image / png; base64, / 9j / 4AAQSkZJRgABAgAAAQABAADFQWERTYUIOPHGJTIYKHMBFHTYF… kZJRgABAgAAAQABAAD // gAEKgD / 4gIcSUNDX1BST0ZJFFFFFF_F_FF_FF_HRFWFRFHBIHFHBIUFFF

Кто-нибудь знает, почему у меня это?

Спасибо

-1

Решение

Почему бы тебе не попробовать Плагин передачи файлов Cordova чтобы загрузить файл изображения на сервер, извлеките файл с помощью $ _FILE, преобразуйте его в объект blob и сохраните.

0

Другие решения

Я нашел, почему я получил эту ошибку! Образ base64, который я использовал, был просто случайным символом, и это стало причиной проблемы.

0

По вопросам рекламы [email protected]