0

I have a problem because I dont really know how to get a file from

<input type="file" name="fileAttach" id="fileAttach" >

$isValid = GUMP::is_valid($_POST, array(
 'first-name' => 'required',
 'last-name' => 'required',
 'email-address' => 'required|valid_email',
 ));

if($isValid === true) {

// Submit Mail
$mail = new SimpleMail();
$mail->setTo(YOUR_EMAIL_ADDRESS, YOUR_COMPANY_NAME)
    ->setSubject('Neue Mietanfrage')
    ->setFrom(htmlspecialchars($_POST['email-address']), htmlspecialchars($_POST['first-name'].' '.$_POST['last-name']))
    ->addGenericHeader('X-Mailer', 'PHP/' . phpversion())
    ->addGenericHeader('Content-Type', 'text/html; charset="utf-8"')
    ->setMessage(createMessage($_POST))
    ->setWrap(100);

if (isset($_FILES['fileAttach']['tmp_name'])) {
    $mail->addAttachment(
        $_FILES['fileAttach']['tmp_name'],
        $_FILES['fileAttach']['name']
    );
}

$mail->send();

My js code is this one

$( "#umzug-form" ).submit(function() {

  $('#umzug-form-msg').addClass('hidden');
  $('#umzug-form-msg').removeClass('alert-success');
  $('#umzug-form-msg').removeClass('alert-danger');

  $('#umzug-form input[type=submit]').attr('disabled', 'disabled');

  $.ajax({
    type: "POST",
    url: "php/umzug.php",
    data: $("#umzug-form").serialize(),
    dataType: "json",
    success: function(data)  {

      if('success' == data.result)
      {
        $('#umzug-form-msg').css('visibility','visible').hide().fadeIn().removeClass('hidden').addClass('alert-success');
        $('#umzug-form-msg').html(data.msg[0]);
        $('#umzug-form input[type=submit]').removeAttr('disabled');
        $('#umzug-form')[0].reset();
      }

      if('error' == data.result)
      {
        $('#umzug-form-msg').css('visibility','visible').hide().fadeIn().removeClass('hidden').addClass('alert-danger');
        $('#umzug-form-msg').html(data.msg[0]);
        $('#umzug-form input[type=submit]').removeAttr('disabled');
      }

    }
  });

  return false;
});

Do you know what I have to change in the javascript so that the file is passing to the php out of the form? I tried some tutorials in this forum but it didn't worked for me for example this and this.

TimN
  • 1
  • 3
  • 1
    Possible duplicate of [How to use FormData for ajax file upload](https://stackoverflow.com/questions/21044798/how-to-use-formdata-for-ajax-file-upload) – IncredibleHat Nov 21 '17 at 17:36

1 Answers1

0

Use a form Data to grab all form contents including the files as well.

var formData = new FormData($('#umzug-form')[0]);

data: formData, 
Rotimi
  • 4,494
  • 4
  • 16
  • 27