我正在尝试使用 php 和 XMLHttpRequest 获得一个简单的上传系统。但是我无法使用请求实现目标。它不起作用..
这是我用于获取图像文件的 HTML 表单:
<form action="../session/uploader.php" method="post" enctype="multipart/form-data" id="uploadForm">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
这是我的 PHP 脚本,它将图像保存到我的文件系统中:
<?php
if(isset($_POST["submit"])) {
$target_dir = "../db/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
}
?>
现在这工作得很好,但我想使用 XMLHttpRequest 以便在上传图像时不需要刷新页面。我试图做一些看起来很简单的事情,但没有奏效。
首先,我将 PHP 更改为:
<?php
$target_dir = "../db/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
?>
在 HTML 表单的正下方,我添加了一些 Javascript 来生成 XMLHttpRequest 并发送它:
<script>
const uploadForm = document.getElementById("uploadForm");
uploadForm.addEventListener("submit", function(e) {
e.preventDefault();
const xhr = new XMLHttpRequest();
xhr.open("POST", "../session/uploader.php", true);
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.send(new FormData(uploadForm));
});
</script>
这里的问题是它根本不起作用。没发生什么事。我没有得到任何反馈。就像没有调用 uploader.php 脚本一样。
有谁知道可能是什么问题?
九州编程
相关分类