【发布时间】:2019-07-29 23:43:52
【问题描述】:
我想将隐藏文件输入的值插入我的数据库,但我不确定如何。我的代码只是不断向我的数据库插入空白值,但我想插入正在上传的文件名。这是我的代码:
<form action="handler.php" method="post" enctype="multipart/form-data">
<div id="bd1" class="border">
<input id="inp1" class="imginp" type="file" name="img1" hidden>
<img src="https://img.icons8.com/wired/64/000000/add-image.png">
</div>
<input type="submit" name="submit">
</form>
<script>
for (let a = 1; a < 3; a++) {
$("#bd"+a).click(function(e) {
$(this).children(".imginp").click()
});
$('#inp'+a).click(function (e) {
e.stopPropagation();
});
$('#inp'+a).on('change', function(e){
var files = e.target.files;
$.each(files, function(i, file){
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(e){
template =
'<div class="border">'+
'<input id="inp'+a+'" class="imginp" type="file" name="img'+a+'">'+
'<img class="blah" src="'+e.target.result+'">'+
'</div>';
$('#bd'+a).replaceWith(template);
};
});
});
}
</script>
if (isset($_POST['submit'])) {
$img1 = $_FILES['img1']['name'];
$img1targ = "images/".basename($_FILES['img1']['name']);
$img1muf = move_uploaded_file($_FILES['img1']['tmp_name'], $img1targ);
$stmt = $conn->prepare("INSERT INTO images (img1) VALUES (?)");
$stmt->bind_param("s", $img1);
$stmt->execute();
$stmt->close();
}
【问题讨论】:
-
使用
var_dump进行调试,以确保您实际上获取了正确的属性,而不是假设您已经获取了。 -
@tadman 我用什么 var_dump
-
无论您插入什么以确保填充该值。从数据库中的空白条目返回到之前的立即操作,并继续查找该值的来源以确保它正确传递。
-
@tadman 我做到了,得到了这个:
string(0) ""。我认为这可能是 html 或 javascript 问题或我的代码中缺少的东西。 -
追溯它的来源等等。使用浏览器中的 Web 检查器功能查看发送了哪些参数(如果有)。使用您的 JavaScript 调试器和
console.log确保它们首先被正确收集。
标签: mysql sql database phpmyadmin