使用javascript将表单中的文件传递到php

时间:2017-11-21 17:00:27

标签: javascript php jquery html ajax

我遇到了问题,因为我真的不知道如何从

获取文件

<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();

我的js代码就是这个

$( "#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;
});

你知道我在javascript中需要改变什么,以便文件传递给表单中的php吗?我在这个论坛中尝试了一些教程,但它对我没有用,例如thisthis

1 个答案:

答案 0 :(得分:0)

使用表单数据来获取包括文件在内的所有表单内容。

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

data: formData,