gpt4 book ai didi

php - jQuery + php 文件上传。传递多个参数

转载 作者:可可西里 更新时间:2023-10-31 23:31:32 25 4
gpt4 key购买 nike

如何通过 $.ajax 将额外的变量传递给 post.php?

我的第一个变量是

var form_data = new FormData($(this)[0])

我可以单独传递,但是如果我想添加另一个变量并制作一个数组

data {
"form_data": form_data,
"name": "hello"
}

它不起作用。

我当前的代码:

$(document).ready(function() { 
$("form#data").submit(function(){

var form_data = new FormData($(this)[0]);

$.ajax({
url: 'post.php',
type: 'POST',
data: form_data,
success: function (data) {

$('#result').html(data);

},
contentType: false,
processData: false
});

return false;
});
});

<div id="result"></div>

<form id="data" method="post" enctype="multipart/form-data">
<input name="file" type="file" />
<button>Submit</button>
</form>

最佳答案

试试这个。 formData 对象有一个方法 append。我们将改用它。我们将在文件名下追加该文件。在 PHP 中,使用 $_FILES['file'] 访问它。现在为要添加到其中的数组或对象。在其上使用 JSON.stringify 将其转换为字符串。我们附加 JSON 字符串并将其添加到名称“object”。要在 PHP 中访问 JSON,json_decode($_POST['object']) 会将其转换为对象。

fiddle

$(function(){
$("form#data").submit(function (e) {
e.preventDefault();
var form_data = new FormData(),
o = {};
o.name = 'Adam';
o.arr = ['test', 213];
form_data.append('file', $('input[name="file"]', this)[0].files[0]);
form_data.append('object', JSON.stringify(o));
$.ajax({
url: '/info/',
type: 'POST',
data: form_data,
success: function (data) {

$('#result').html(data);

},
contentType: false,
processData: false
});

return false;
});
});

关于php - jQuery + php 文件上传。传递多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19871434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com