Форма связи с отправкой файла с ограничением

Снова здравствуйте. Попросили меня на сайте переделать форму обратной связи (FormIt+AjaxForm), так чтобы им на почту еще и файлы можно было отправлять через неё. НО с условием, что можно цеплять файл/файлы (кол-во задается) doc|xls|pdf|jpg и до 5 Мб.
Я так понимаю, что для этого этот файл сначала надо на сайт загрузить (чтобы ограничения сработали), а потом прицепить к сообщению и отправить.
Вот не понимаю, как это всё устроить. Допустим, я смогу загрузить файл на сайт (например, через FileAttach), а дальше чего делать? Как их к письму цеплять и после отправки удалять? Нет типового решения еще? Вообще это нужная вещь, на сайтах часто нужно документы отправлять.
Под катом ссылки по теме ↓
Нарыто по теме:
1. Отправка письма на e-mail через сервис MODX modMail
2. FormIt with attachment, max file size and limit file type
3. Attach local file, not from form
4. Отправка файлов

В общем-то там вроде есть решение, я понимаю в общем, но не в частности (понимаю логику, но не конкретные конструкции), короче не джедай.
Продолжаю думать сам…
Виталий Барышников
28 апреля 2016, 03:19
modx.pro
1
3 387
0

Комментарии: 3

Dmitry Rodionov
24 июня 2016, 21:14
+1
Немного запоздало, но возможно пригодится кому-то:
FormIt прекрасно прикрепляет файлы ([type=«file»]) к письму.
В AjaxForm используется компонент jQuery Form Plugin, на странице с документацией (jquery.malsup.com/form/#file-upload) указана информация по загрузке файлов, в том числе с отслеживанием прогресса.
И поэтому чтобы AjaxForm передала файлы в FormIt правильно, необходимо всего лишь указать в форме enctype=«multipart/form-data»
<form method="POST" enctype="multipart/form-data">
И файлы успешно будут загружаться на сервер и отправляться по почте. Естественно работает во всех современных браузерах.
Массовость же файлов можно реализовать на JS, добавлением через копирование input'а, может и не элегантно, зато просто и быстро.
    Сергей
    03 августа 2016, 18:27
    0
    Подскажите пожалуйста а как указать типы файлов и максимальный размер для загрузки?
      Виталий Барышников
      04 августа 2016, 03:03
      0
      Привет. Через форму можно указать тип, но не размер. Это вообще очень плохой способ, на уровне вёрстки и поддержки браузером.
      <input type="file" name="photo" multiple accept="image/*,image/jpeg">
      Всё конечно же нужно проверять на сервере.
      Тут лучше взять компонент типа AjaxUpload, Uploadify, FileAttach или ms2gallery, там у них есть настройки для размеров и типов, выбирайте для своих задач.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3