Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Скрин прикрепить к письму html2canvas (https://javascript.ru/forum/events/62305-skrin-prikrepit-k-pismu-html2canvas.html)

Heny 04.04.2016 08:11

Скрин прикрепить к письму html2canvas
 
Добрые форумчане, может поможете разобраться в проблеме)
На странице есть скрипт, который делает скрин. Выглядит так:
<script language='javascript'>
        function downimg(){
            html2canvas($('#downimg'), {
                onrendered: function (canvas) {
                    var img = canvas.toDataURL('image/jpeg').replace('image/jpeg', 'image/octet-stream');
                    canvas.toBlob(function(blob) {
                    saveAs(blob ,"laminar.jpeg");
                    }, "image/jpeg");

                }
            });
        }
</script>


И есть кнопка "сохранить":
<button type="button" id="save" class="3d-button" onClick="downimg()">Сохранить</button>

При клике картинка сохраняется на компьютер. А сейчас есть задача,сформированную картинку прикреплять к письму (там есть еще одна кнопка "отправить"). Можете подсказать как?

laimas 04.04.2016 13:58

Цитата:

Сообщение от Heny
А сейчас есть задача,сформированную картинку прикреплять к письму

Этим занимается сервер.

Яростный Меч 04.04.2016 16:22

Цитата:

Сообщение от Heny
А сейчас есть задача,сформированную картинку прикреплять к письму (там есть еще одна кнопка "отправить"). Можете подсказать как?

вместо saveAs отправлять блоб на сервер.

Яростный Меч 04.04.2016 16:26

вообще, непонятно, зачем в коде используется и toDataURL, и toBlob.
надо что-то одно. И если это будет toBlob, то нужен полифил, не во всех браузерах оное реализовано.

Heny 07.04.2016 08:24

:blink: мне все равно непонятно как надо написать((( я начинающий товарисч

Heny 07.04.2016 10:40

а как отправлять на сервер? типа такого: xhr.send(downimg); ?

Heny 07.04.2016 11:38

сделала так:
<script language='javascript'>
function saveimg(){  

 var xhr = new XMLHttpRequest();
  xhr.open('POST', '', true);
  xhr.onload = function(e) { /*...*/ };
  
      html2canvas($('#saveimg'), {
      onrendered: function (canvas) {
      canvas.toBlob(function(blob) {
      xhr.send(blob ,"laminar.jpeg");
      }, "image/jpg");
      }
      });
      }
</script>

понимаю, что хрень наверное, ну и не работает она естественно

Heny 11.04.2016 11:08

никто не подскажет?

Маэстро 11.04.2016 12:20

Цитата:

Сообщение от Heny (Сообщение 413067)
...там есть еще одна кнопка "отправить"...

А что сейчас происходит по этой кнопке?
Полуавтоматизированный вариант (при условии, что у посетителя на компьютере есть почтовая программа):
<a href="mailto:admin@javascript.ru?subject=screenshot&body=Вложите файл скриншота laminar.jpeg в письмо">ОТПРАВИТЬ письмо</a>

Heny 12.04.2016 07:42

через эту кнопку открывается форма с полями, после заполнения которой идет кнопка "отправить для рассчета" - отправка сформированного письма с помощью системы управления сайтом netcat функцией CMIMEMail, туда добавляются указанные пользователем в форме поля, а я еще хотела прикрепить эту сформированную картинку, знаний не хватает катострофически :(
Можно тут посмотреть, чтоб понятнее было www.laminar.ru/test


Часовой пояс GMT +3, время: 20:36.