загрузить файл, просто выбрав файл и не отправляя форму - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть функция почты в плагине для администратора WordPress, и я хочу иметь возможность динамически прикреплять файл и отправлять его по почте как вложение. Я использую метод ajax при выборе файла и должен загрузить, но я застрял. Посмотрите мой код.

HTML-код

        <p class="email-from">
            <label>From</label>
            <span class="sep">:</span>
            <span class="value">Casting Kids(office@castingkids.com.au)</span>
        </p>
        <p class="email-to">
            <label>To</label>
            <span class="sep">:</span>
            <span class="value"><?=$child[0]->fname.' '.$child[0]->lname?></span>
            <input type="hidden" class="email_address" value="<?=$child[0]->email?>">
        </p>
        <p class="email-subject">
            <label>Subject</label>
            <span class="sep">:</span>
            <span class="value">
                <input type="text" name="email_subject" placeholder="Subject...">
            </span>
        </p>
        <div id="parent_mail">
          <trix-editor placeholder="Type your email body ....."></trix-editor>

          <div class="client-action">
      <input type="submit" class="button button-primary" id="email_P" name="email_parent" value="Send Mail" >
      <input type="file" name="files[]" id="email_file" multiple>
      <label for="email_file">Attach File</label>
      <input type="reset" class="button button-default" value="Discard">
      <p style="display: none;" class="error_message"></p>
      <p style="display: none;" class="success_message"></p>
  </div>
        </div>
    </form>
  </div>

Код Jquery

$("#email_file").on('change',function(e){
  e.preventDefault();
  var formData = new FormData("#mail_parent_form");
  formData.append("action", "attach_file_parent");
  console.log(formData);
  $.ajax({
    url: ajaxurl,
    type: 'POST',
    data: formData,
    cache: false,
    contentType: false,
    processData: false,
    success: function (data) {

    }
  });
})

Но в форме журнала консоли выдает пустые данные формы {}. Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 04 сентября 2018

Вставьте этот код при нажатии кнопки закрытия, используя jquery

 var fileUpload = $("#FileUpload11").get(0);
            var files = fileUpload.files;
            var test = new FormData();
            for (var i = 0; i < files.length; i++) {

                test.append(files[i].name, files[i]);

            }
            if (files.length > 0) {
                $.ajax({
                    url: "UploadHandler.ashx",
                    type: "POST",
                    async: false,
                    contentType: false,
                    processData: false,
                    data: test,
                    success: OnSuccess,

                });
            }
            function OnSuccess(result) {
                pic = result;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...