我正在尝试将产品连同一些图片添加到数据库中,服务器端是 PHP。我想通过 AJAX 异步上传所有内容。我希望将图片保存在产品 ID ( thumbs/productID
) 之后的目录名称中。
第一部分,即提交产品信息并检索其 ID 已完成。但是,在上传文件时,我无法同时上传文件和字符串,以告知我的脚本要保存在哪个文件夹中。但是,我只能发送文件。
有没有办法同时发送文件和文本?任何帮助将不胜感激。
$('#register-product').on('submit', function ( evt ) {
evt.preventDefault();
var i = 0, len = document.getElementsByName("images").length-1, reader, file;
var myFiles = document.getElementsByName("images");
// Adds all files to formdata
for ( ; i < len; i++ ) {
file = myFiles[i].files[0];
if (!!file.type.match(/image.*/)) {
if ( window.FileReader ) {
reader = new FileReader();
reader.readAsDataURL(file);
}
if (formdata) {
formdata.append("images[]", file);
}
}
}
// Send data to the server.
if (formdata) {
$.ajax({
url: "upload.php",
type: "POST",
// data: formdata, // This is correct
data: {formdata, id: 1}, // This doesn't work
processData: false,
contentType: false,
success: function (res) {
console.log(res);
}
});
}
});
最佳答案
只需将另一个值附加到您的表单数据:
//...
formdata.append("id", 1);
if (formdata) { //...
您可以通过 $_POST["id"] 访问它。
关于javascript - 同时使用 AJAX $_FILES 和 $_POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11881948/