Показать сообщение отдельно
  #1 (permalink)  
Старый 07.09.2015, 00:17
Интересующийся
Отправить личное сообщение для dimensi Посмотреть профиль Найти все сообщения от dimensi
 
Регистрация: 07.09.2015
Сообщений: 20

Как отправлять файлы через type='file' на js скрипт?
Нашел на хабхабре статью, о том как посылать письма использую почтовый сервис через JS язык. Сначала у меня были проблемы с тем, чтоб просто отправлять письма ибо знания в js у меня очень слабые. Учил учил, а материал не закрепил, поэтому одни сплошные дыры в ajax, js и в dom. Сначала я понял как прицепить к кнопке функцию и посылать письмо. Потом после долгих поисков в google нашел способ как с помощью формы посылать письма.
var xmlhttp = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open('POST', 'https://mandrillapp.com/api/1.0/messages/send.json');
xmlhttp.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
        if(xmlhttp.status == 200) alert('Спасибо за заявку, в скором времени вам перезвоним!')
        else if(xmlhttp.status == 500) alert('Check apikey')
        else alert('Request error');
    }
}

window.addEventListener('DOMContentLoaded', function(){
     var form = document.querySelector('#sendForm');
    
      form.addEventListener('submit', function (e) {
        e.preventDefault();
        sendMail(this.elements.sub.value, this.elements.text.value);
      }, false);
}, false);

function sendMail(sub, text){ 
	xmlhttp.send(JSON.stringify({'key': 'puturApikey',
   'message': {
       'from_email': 'test@mail.ru',
       'to': [{'email': 'totest@mail.ru', 'type': 'to'}],
       'autotext': 'true',
       'subject': sub
       'html': text
    }}));}

Я был несказанно рад своему открытию и возможности посылать письмо через этот скрипт с помощью формы. Дальше я узнал в API почтового сервиса могу еще и файлы прикреплять и изображения.

Я подумал, что добавление this.elements.images.value хватит, чтоб посылать файлы, но понял, что не прав. Я так понял, что я должен вытаскивать из файлы тип файла, название файла и base64 файла. Как это сделать, я в гугле не нашел. А быстрое пролистывание учебника вашего ресурса тоже не помогло. Скажите, как реализовать отправку изображений через обычный input type=file? Чтоб сразу несколько можно было. Заранее спасибо.

Последний раз редактировалось dimensi, 07.09.2015 в 00:25.
Ответить с цитированием