Отправка canvas-изображения на сервер
Сейчас использую canvas.toDataURL() и отправляю ajax-ом как POST-поле и сохраняю с помощью php, но этот способ кушает много памяти, можно, конечно, отправлять небольшими объемами: по одному изображению или даже разбивать на части, но много кода, костылей и все-равно ощутимая дополнительная нагрузка на сервер.
Есть какой-то способ отправить ajax-ом изображение из canvas, что бы оно сохранилось стандартным средством, как из <input type="file"...? |
|
Спасибо, http://habrahabr.ru/post/133351/ - помогла. Экземпляры с прототипом FormData принимают файлы в бинарном виде (bloab) и обрабатывают их соответствующим образом.
// В FF все просто: получаем бинарник из канваза одним методом var bloab = cv.mozGetAsFile(name, 'image/jpeg'); // Создаем FormData var form = new FormData(); // Добавляем бинарник form.append('Filedata1', bloab); // Отправляем форму ajax-запросом $.ajax({ url: 'http://exaple.com/upload.php', data: form, cache: false, contentType: false, processData: false, type: 'POST', success: function() { console.log('success'); } }); В Хроме, который мне был нужен, получить бинарник сложнее, но в указанной выше статье есть рабочий вариант. Все остальное - также. |
Часовой пояс GMT +3, время: 13:17. |