Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.05.2017, 15:53
Новичок на форуме
Отправить личное сообщение для RayEagle Посмотреть профиль Найти все сообщения от RayEagle
 
Регистрация: 27.03.2015
Сообщений: 6

Ajax, php и картинка
есть картинка на страничке:
Код:
<img id="imgResult" style="display: block;" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwM........">
есть огромное желание передать её на сервер и сохранить там.
Передаю так:
Код:
var image = $("#imgResult").attr("src").split(",");
        $.ajax({
            url: 'php.php',
            type: "POST",
            dataType: "json",
            data: {image : image[1]},
            success: function(res) {
                alert(res.otvet);
            }
        });
Принимаю и сохраняю так:
Код:
$img= imagecreatefromstring(base64_decode($_POST['image']));
$fpng = fopen("img.png", "w");
fwrite($fpng,$img);
fclose($fpng);
В итоге имеем сохраненный пустой файл.
Что не так-то?
Ответить с цитированием
  #2 (permalink)  
Старый 25.05.2017, 16:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

imagecreatefromstring
и
fopen("img.png", "w");
из разных опер

На сервере

file_put_contents('img.png', base64_decode($_POST['image']));
//если же если проверять на шелуху, то
if($img= imagecreatefromstring(base64_decode($_POST['image']))) {
    imagepng($img, 'img.png');
    imagedestroy($img);
}
Ответить с цитированием
  #3 (permalink)  
Старый 25.05.2017, 17:37
Новичок на форуме
Отправить личное сообщение для RayEagle Посмотреть профиль Найти все сообщения от RayEagle
 
Регистрация: 27.03.2015
Сообщений: 6

Спасибо! Получилось.
Единственное, что поправил:
Код:
if($img= imagecreatefromstring(base64_decode($_POST['image']))) {
    imagejpeg($img, 'img.jpeg');
    imagedestroy($img);
}
так как изначально картинка была jpeg
Ответить с цитированием
  #4 (permalink)  
Старый 25.05.2017, 17:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от RayEagle
так как изначально картинка была jpeg
Ну это уж как написано было. Если же могут бить и другие форматы, то нужно полностью отдавать серверу строку, data:image/jpeg;base64,...., получать тип изображения, и соответственно записывать нужной функцией, иначе все изображения будут сохраняться в формате JPEG.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отправить и получить ответ от php через ajax? drkrol Общие вопросы Javascript 2 26.11.2016 03:49
Несколько запросов к php через AJAX Florens AJAX и COMET 9 25.07.2014 21:21
Живой поиск JQUERY + AJAX + PHP + MYSQL dimi007 AJAX и COMET 2 22.07.2014 13:50
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
php session а в ajax Sadist_dead AJAX и COMET 1 19.08.2011 18:35