javascript - 通过ajax post发送文件和表单数据

标签 javascript php jquery ajax file-upload

我正在尝试通过 ajax 上传文件以及表单中的某些字段。但是,它不起作用。我收到此错误。

Undefined Index :- File

这是我的代码。

HTML

<!-- File Button -->
<div class="form-group">
  <label class="col-md-4 control-label" for="file">Upload Software / File</label>
  
  <div class="col-md-4">
    <input id="file" name="file" class="input-file" type="file">
  </div>
</div>

<div class="form-group">
  <label class="col-md-4 control-label" for="price">Price($)</label>
  
  <div class="col-md-4">
    <input id="price" name="price" type="text" placeholder="Price" class="form-control input-md" required="">
  </div>
</div>

Ajax

$("#add_product").click(function(e) {
  e.preventDefault();
  product_name = $("product_name").val();
  //d = $("#add_new_product").serialize();
  
  $.ajax({
    type: 'POST',
    url: 'ajax.php',
    data: $("#add_new_product").serialize(),
    success: function(response) {
      //
      alert(response);

    }
  })
});

PHP

if (0 < $_FILES['file']['error']) {
  echo ":!";
} else {
  echo "ASa";
}

我在这里错过了什么?

最佳答案

你能尝试使用 FormData() 吗:

$("form#files").submit(function(){

    var formData = new FormData($(this)[0]);

    $.ajax({
        url: window.location.pathname,
        type: 'POST',
        data: formData,
        async: false,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false
    });

    return false;
});

以上是示例代码,您可以根据它进行修改。

关于javascript - 通过ajax post发送文件和表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33761469/

相关文章:

javascript - 有没有办法在 Javascript 中自定义/覆盖赋值运算符?

javascript - 如何将RGB颜色与RGBA颜色进行匹配

javascript - WebGL - 沿行进方向旋转对象

php - 将 PHP 变量传递给 MySQL

PHP选择带权重的随机数

javascript - 需要更正此表单验证

javascript - 我如何可靠地获取特定参与者离开(和加入)twilio 房间的时间戳?

php - 如何在 Wordpress 中显示图片

javascript - JQuery 将匿名函数转换为命名函数无法正常工作

javascript - 如何计算所有上传文件的总大小