Задать вопрос

Как отправить на серевер картинку, если она base64?

Есть страница с формой. есть <input type="submit"> в котором выбирается картинка, далее, эта картинка кропается через плагин jquery, это плагин возвращает картинку в формате base64.
Как-то так:
2CiVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAYAAACI7Fo9AAAgAElEQVR4Xoy9C6x2bVoe9Kz3sP

Как отправить на сервер и сохранить?
  • Вопрос задан
  • 2454 просмотра
Подписаться 2 Оценить 5 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
kowap
@kowap Автор вопроса
Всем спасибо.
Я хотел получить вот такой ответ
$img= base64_decode('iVBORw0KGgoAAAA...');
$fpng = fopen("img.png", "w");
fwrite($fpng,$img);
fclose($fpng);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
Peekab0o
@Peekab0o
Node.js developer
var image;

image = $('#image').attr('src').split(',');

$.ajax({
  type: "POST",
  dataType: "json",
  data: {
    image: image[1]
  },
  url: 'http://site.com',
  success: function(res) {
    return console.log(res);
  }
});

На сервере принять через $_POST["image"]
Ответ написан
bootd
@bootd
Гугли и ты откроешь врата знаний!
Скрытый input в значение которого вставлять код картинки!
Потом сохраняете полученную строку в бд, а дальше просто выводите так
<img src="data:image/png;base64,<?img?>">
Где переменная $img - это код картинки. Но ваш плагин как-то не правильно переводит картинку или вы скинули не весь код. Где указание формата вначале, например так: data:image/png;base64,?
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
что мы имеем - мы имеем картинку закодированную в base64. Что с ней делать? Логика подсказывает что мы должны сделать base64decode и сохранить этот кусок бинарных данных в файл (jpg/png - зависит от того во что этот плагин сохраняет).
Ответ написан
Комментировать
akubintsev
@akubintsev
Опытный backend разработчик
Что-то в алгоритме загрузки кропнутого изображения не так.
Должно быть:

1) <input type="file"... откуда можно взять переменную для передачи файла
2) плагин для кропа, который должен вернуть координаты выделения

Эти данные и отправляются на сервер.

А чтобы кропать можно было по изображению без загрузки на сервер - javascript-овый FileReader в помощь.
Вот пример (немного говнокода, но в целом понятно):
- frontend: с 215-й строки https://github.com/kryoz/sociochat/blob/master/www...
- backend: https://github.com/kryoz/sociochat/blob/master/www...

Ваш же подход связан с гемором разбора данных на серверной стороне. Лучше использовать штатные инструменты.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽