javascript - append() 不是 ajax 数据字符串中的函数 jQuery

标签 javascript php jquery ajax

当我尝试将文件数据附加到 ajax 数据字符串时,出现“未捕获的类型错误:dataString.append 不是函数”。

这是我的代码

HTML:

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

Ajax :

var name = document.getElementById("name").value;
var address1 = document.getElementById("address").value;
var dataString = '&name=' + name +
                 '&address1=' + address1 ;
var fuData = document.getElementById('upload');
var FileUploadPath = fuData.value;
if (FileUploadPath == '') {
           alert("Please upload an image");                                         
 } else {
dataString.append( "upload", $("#upload")[0].files[0]);
   }
$.ajax({
           type: "post",
           url: ".../upload.php",
           data: dataString,
           cache: false,
           success: function (data) {
              var pkg = JSON.parse(data);
              if (pkg.status) {
                  var rs_items = pkg.result_data;
                  //var msg = pkg.quote;
                  // alert(pkg.result_data);
                  alert('saved');
                 //('#msg').html(msg);
              } else {
                   //alert(pkg.msg);
               }
             }
  });

如果有人可以建议一种更好的方法来将带有图像上传的特定表单数据发送到 PHP,那将是一个很大的帮助。

最佳答案

您可以使用 FormData为此目的:

var formData = new FormData();
formData.append('upload', $("#upload")[0].files[0]); 

$.ajax({
    type: "post",
    url: '.../upload.php',
    data: formData,
    contentType: false,
    processData: false,
})

关于javascript - append() 不是 ajax 数据字符串中的函数 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36283209/

相关文章:

php - 组合查询以提高速度

PHP:通过类名获取DOM元素

jQuery Unslider 在本地工作,但不在服务器上

javascript - 如何获取从 html 文件发送到 php 的数据并接收并显示数据

javascript - 隐藏/显示正文背景

javascript - 包含函数无法识别文本变量中的子字符串

javascript - 幻灯片显示不正确的问题

javascript - 默认导出的 Typescript 接口(interface)

php - 我如何优化这个花费大量时间的查询?

javascript - 如何在页面加载完成时运行 Div 元素