【问题标题】:Uploading data and files in one form using Ajax PHP?使用 Ajax PHP 以一种形式上传数据和文件?
【发布时间】:2018-04-11 15:58:14
【问题描述】:

我在表单中使用 jQuery 和 Ajax 来提交数据和文件,但我不确定如何在一个表单中同时发送数据和文件?

<form id="data" method="post" enctype="multipart/form-data">
<input type="text" name="first" value="Bob" />
<input type="text" name="middle" value="James" />
<input type="text" name="last" value="Smith" />
<input name="image" type="file" />
<button>Submit</button>
</form>

我打算如下使用FormData

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

但发现它在 IE

【问题讨论】:

    标签: javascript php jquery ajax


    【解决方案1】:

    这个块应该适合你。

    $.ajax({
            url: 'url',
            type: 'POST',
            async: true,
            dataType: "json",
            data: $('#data').serializeArray(),
            error: function (a, b, c) { onError(a, b, c, parameters); },
            success: function (data) { onSuccess(data, parameters); }
        });
    

    【讨论】:

    • 在 C# asp.net 中,我使用了这个。它对我有用。我在控制器的“HttpPostedFileBase”中捕获了该文件。在 php 中找到等价物。
    • 但我需要 PHP 而不是 C#
    【解决方案2】:

    您可以在 php 中这样做,而不是使用表单数据,

    序列化您的表单数据并通过 ajax 发送,例如,

        $.ajax({
            type: 'post',
            url: 'post.php',
            data: $('#form').serialize(),
            success: function () {
            }
          });
    
        });
    

    使用$('#form').serialize(),您可以将所有表单数据发送到 php。

    希望对你有帮助

    【讨论】:

      【解决方案3】:
      function savedata(){
      
      var vacancy_desc = CKEDITOR.instances['vacancy_desc'].getData();
         var file_data = $('#fileupload').prop('files')[0];  
         var form_data = new FormData();                  
         form_data.append('file', file_data);
         form_data.append('vacancy_records',vacancy_records);
         form_data.append('vacancy_desc',vacancy_desc);
      $.ajax({
              url:pathname,
              method:"POST",
              dataType: 'text', // what to expect back from the PHP script
              cache: false,
              contentType: false,
              processData: false,
              data:form_data,
              cache:false,
              success:function(datas){
      
                        alert('Updated successfully !');
                        return false;
                  }
            });
      }
      

      【讨论】:

        猜你喜欢
        • 2021-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多