javascript - 如何在 onchange 事件中使用 php、ajax 上传图片
问题描述
我正在使用 jquery ajax 和 php 在 onchange 事件上上传图像,代码可以正常工作,但是它没有上传图像,在其他页面上显示未定义的索引照片
索引.php
<form id="reg" method="POST" enctype="multipart/form-data">
<div class="form-group">
<input type="file" name="photo" id="photo" onchange="myfunction(this.form);" >
<span id="photoid"></span>
</div>
</form>
<script>
function myfunction(theForm) {
var formData = new FormData(this);
$.ajax({
type: 'POST',
url: 'regimg.php',
data: formData,
success: function (data) {
$('#photoid').html(data);
},
cache: false,
contentType: false,
processData: false
})
}
</script>
配置文件
<?php
include 'db.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$photo = $_FILES['photo']['name'];
$query = mysqli_query($conn,"INSERT INTO img(image) VALUES('$photo')");
if ($query AND move_uploaded_file($_FILES['photo']['tmp_name'], 'image/'.$photo))
{
echo 'Data has been added';
}
else
{
echo 'data could not be added';
}
}
?>
当我单击文件时,显示一个错误,未定义的索引照片。请帮我解决这个问题
解决方案
this
在你的函数中是window
,而不是form
元素。将 FormData 行更改为:
var formData = new FormData(theForm);
推荐阅读
- javascript - 如何在中心的盒子中实现活动指示器,里面有加载器
- scala - 替换仅在 Scala 中特定单元测试中使用的方法
- php - PHP递归以及如何获取数组变量以在递归调用中保持值
- sql - 如何获取列中的更改和 ID 的首次出现
- google-api - 以编程方式接受服务帐户的“Google 我的商家”邀请
- codeigniter-3 - 如何使用codeignitor将变量从控制器传递到视图
- android-studio - Android Studio @Override 注解超级方法
- r - 访问传递给父 R 函数或在其中定义的变量
- powerbi - 使用 DAX 公式通过 Power Pivot/Power BI 获取最大和最大差异
- c++ - 指向派生类的指针的重载解决方案