append()不是ajax数据srting中的jQuery函数


append() is not a function jQuery in ajax data srting

当我试图将文件数据附加到ajax数据字符串时,我得到了一个"Uncaught TypeError: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,
})