我查看了许多不同的问题,但仍然无法找到代码中的缺陷。我基本上是尝试使用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])
然后它奏效了!
答案 0 :(得分:1)
您可以直接将元素发送到SERVER
。
var imageName = $('input[name="bugImage"]');
var imageName = $('input[name="bugImage"]')[0].files;