【问题标题】:Send image and text with ajax用ajax发送图片和文字
【发布时间】:2012-11-27 08:25:25
【问题描述】:

我正在使用 javascript 的“formData”通过 ajax 发送图像文件。如何将其他数据附加到 formData,例如文本字符串?

JS:

$("#post-image").click(function(){
    $.ajax({
        url: "../../build/ajaxes/upload-photo.php",
        type: "POST",
        data: formdata,
        processData: false,
        contentType: false,
        success: function (response) {
            console.log(response);
        }
    });
});

PHP:

在我的 PHP 中,我可以使用 $_FILES["images"] 访问图像。我不知道用什么来处理我通过 formdata 传递的附加数据。

【问题讨论】:

    标签: javascript ajax jquery multipartform-data


    【解决方案1】:

    如果您有包含多个文件上传的大表单,则不要使用 MALSUP JQUERY PLUGIN 。它只会发送您的所有表单字段

      $(form).ajaxSubmit();    
    

    【讨论】:

      【解决方案2】:

      如果要向 FormData 添加参数,请使用FormData.append

      $("#post-image").click(function(){
          formdata.append('name', 'value');
          $.ajax({
              url: "../../build/ajaxes/upload-photo.php",
              type: "POST",
              data: formdata,
              processData: false,
              contentType: false,
              success: function (response) {
                  console.log(response);
              }
          });
      });
      

      在 PHP 中使用 $_POST["name"] 来获取值。

      【讨论】:

        【解决方案3】:

        您需要将表单作为多部分提交。这是您问题的 SO 解决方案:Making an HTTP POST call with multipart/form-data using jQuery?

        不是完全重复,所以我没有将其标记为这样,但它是对您问题的解决方案的直接引用。

        编辑:您会注意到一些答案也将 FormData 作为解决方案。正确发布数据后,您可以使用 PHP 中的普通 $_FORM 集合访问它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-11
          • 2012-08-12
          • 1970-01-01
          相关资源
          最近更新 更多