我使用表单数据将图像发送到服务器。
//create form data from form
var formData = new FormData($('#my-form')[0]);
//append the image
formData.append('file', myFile);
//add data from crop plugin
formData.append('file-data', cropData);
//POST
$.ajax({
url: /upload,
type: 'POST',
dataType: 'json',
processData: false,
contentType: false,
data: formData
})
当我尝试从裁剪插件添加数据时出现问题,它记录正常:
Object {x: 140, y: 273.49999999999994, width: 520, height: 520, rotate: 0}
但是一旦在 PHP 中发布,它只会转储为没有属性的空数组。
我哪里出错了?
最佳答案
您无法将普通对象作为第二个参数传递给 FormData
对象上的 append
。 (嗯,你可以,但它会被字符串化,这通常会给你“[object Object]”
)。
需要分别添加每条数据。您可以使用 PHP 的命名约定在另一端获取数组。
for (var prop in cropData) {
if (cropData.hasOwnProperty(prop)) {
formData.append('file-data[' + prop + ']', cropData[prop]);
}
}
关于javascript - 追加表单数据对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29489400/