Upload Imag-6ren">
gpt4 book ai didi

javascript - 不使用 HTML 表单通过 ajax POST 上传图片

转载 作者:搜寻专家 更新时间:2023-10-31 21:25:51 25 4
gpt4 key购买 nike

我正在尝试通过 POST 方法将一些数据发送到 PHP 文件,而不使用 HTML 中的表单。这是我的代码。为什么它什么都不做?

<input type="file" name="fileToUpload" id="fileToUpload">
<input type="hidden" value="<?php echo $row['Gallery_Id']; ?>" name="gid" id="gid">
<input type="hidden" value="User" name="user" id="user">
<button onclick="myFormData()">Upload Image</button>
<script>
$('#fileToUpload').on('change', function() {
var myFormData = new FormData();
var file = document.getElementById('fileToUpload').value;
var gid = document.getElementById('gid').value;
var user = document.getElementById('user').value;
myFormData.append('file', file);
myFormData.append('gid', gid);
myFormData.append('user', user);
});

$.ajax({
url: 'imgupload.php',
type: 'POST',
processData: false, // important
contentType: false, // important
dataType : 'json',
data: myFormData
});

</script>

imgupload.php 上,我得到这样的 POST 数据

$gid = $_POST['gid'];
$user = $_POST['user'];

当我使用 HTML 表单方法时它起作用了。这里有什么问题吗?

最佳答案

FormData.append()采用键值对,所以这是错误的:

myFormData.append(file,gid,user);

你需要这样的东西:

myFormData.append('file', file);
myFormData.append('gid', gid);
myFormData.append('user', user);

除此之外,您需要将此代码放入事件处理程序中,以便它在您需要时触发。

例如:

$('#fileToUpload').on('change', function() {
// your javascript code
});

而且您可能还应该将它放在 document.ready block 中。

关于javascript - 不使用 HTML 表单通过 ajax POST 上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36325601/

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