通过ajax上传文件时,它始终返回[作为文件信息

时间:2016-10-12 03:18:35

标签: php jquery ajax

我查看了许多不同的问题,但仍然无法找到代码中的缺陷。我基本上是尝试使用html / ajax和服务器端的php将文件上传到服务器。以下是我的代码:

 //HTML
<div class="col-sm-6">
  <div class="">
     <input name="bugType" type="text" class="bugType">
  </div>
 </div>
 <div class="col-sm-6">
    <div class="upload">
       <input name="bugImage" type="file" class="bugImage">
    </div>
 </div>

//JS 
$("#addBug").on('click', function (event) {
    event.preventDefault();
    var bugType = $('input[name="bugType"]').val();
    var imageName = $('input[name="bugImage"]');
    fd = new FormData();
    fd.append("type", "add");
    fd.append("imageName", imageName);
    fd.append("bugType", bugType);
    $.ajax({
        url: 'classes/bug-class.php',
        type: "POST",
        dataType: "json",
        data: fd ,
        enctype: 'multipart/form-data',
        contentType: false, 
        processData: false,  
        success: function (data) {
            alert("SUCCESS");
            alert(data);
        },
        error: function (data) {
            alert("FAILURE");
            console.log(data);
        }
    });
});



//PHP
$type = $_POST['bugType'];
$image = $_POST['imageName'][0];
echo $image; //PRINTS OUT [

如果我改变:

  $image = $_FILES['imageName']
  echo $image // PRINTS OUT ""

感谢您的帮助!

// EDIT

 FileList {0: File, length: 1}
 0
 :
 File
 lastModified
 :
 1475177716000
 lastModifiedDate
 :
 Thu Sep 29 2016 14:35:16 GMT-0500 (CDT)
 name
 :
 "17-3.png"
 size
 :
 187682
 type
:
"image/png"
webkitRelativePath
:

“”    的    :    文件   长度   :    1    的   :   文件列表

var_dump($_FILES) // output -> array(0)

// WORKING

必须改为:

  fd.append("imageName", imageName[0])

然后它奏效了!

1 个答案:

答案 0 :(得分:1)

您可以直接将元素发送到SERVER

var imageName = $('input[name="bugImage"]');


var imageName = $('input[name="bugImage"]')[0].files;