我一直在收到这个奇怪的错误而且我无法弄清楚
这是我目前的代码:
function addBackground() {
var penguin_id = getPenguinID();
var file = $('#image_form')[0].files[0];
console.log('Image Getting Uploaded');
var formData = new FormData();
formData.append('file', file);
$.ajax({
url: "custBG.php",
type: "POST",
data: formData,
cache: false,
contentType: false,
processData: false,
mimeType: 'multipart/form-data'
}).done(function(data) {
if (data.status == 0) {
console.log('Image Has Been Uploaded');
addBGItem(70000 + penguin_id);
} else {
console.log(data.message);
}
});
}
这是表格
<form id="image_form">
<div class="left">
<img id="img-uploaded" src="http://dummyimage.com/210x210/dbdbdb/7e7f80.png" alt="your image" />
</div>
<div class="right">
<input type="file" name="imageToUpload" accept=".png,.jpeg,.jpg,.gif" onchange="validate_image()">
<span class="btn btn-large btn-alpha" onclick="addBackground()">Upload Image</span>
</span>
</div>
</form>
我不确定是什么,但任何人都可以帮我解决这个问题。
答案 0 :(得分:1)
在jQuery中,使用id选择器(例如(忘记了,一个id选择器will always yield a collection no matter how many items there are - 感谢Leo提出它。)此外,它没有属性$('#image_form')
)只会产生第一个结果,因此不需要它旁边的[0]
。files
,这将产生另一个错误。
你想在这里实现什么目标?
答案 1 :(得分:1)
而不是$('#image_form')[0].files[0];
尝试使用$('#image_form').prop('files')[0];
它对我有用。
答案 2 :(得分:0)
你的问题在于我相信的files[0]
。也许你正试图在输入字段中获取值?您正在获取该公司的jquery集,其中files属性未定义。 $("#image_form").find("input").val()
应该为您提供输入框值,但在处理表单时可能有更合适的方法