当我取消注释字符串 fs.writeFile 函数时,我无法阻止重新加载页面。当我的代码中没有此函数时,浏览器会保持其状态并且不会重新加载页面。 如何将我的文件放在本地目录中并在不重新加载的情况下使用它?
我尝试了不同的方式向客户端和服务器发送请求,尝试在目录中同步写入文件,但没有任何帮助。 我在 html 中有这样的表单代码:
<form id="metadata-form">
<input type="file" id="file-input" required/>
<button id="process-file-button" type="button">Check file</button>
</form>
这是我的客户代码:
document.getElementById("process-file-button").addEventListener("click", async (event) => {
event.preventDefault();
const formData = new FormData();
const fileInput = document.getElementById("file-input");
if (!fileInput.files.length) {
alert("Выберите файл для загрузки!");
return;
}
formData.append("file", fileInput.files[0]);
try {
const response = await fetch("http://localhost:3000/process-file", {
method: "POST",
body: formData,
});
if (!response.ok) {
throw new Error("Error sending to server");
}
const result = await response.json();
console.log(result)
} catch (error) {
console.error("Error:", error);
}
});
以及服务器的一部分:
app.post("/process-file", async (req, res) => {
if (!req.files || !req.files.file) {
return res.status(400).json({ error: "Файл не загружен" });
}
const uploadedFile = req.files.file;
const tempFilePath = path.join(__dirname, "uploads", uploadedFile.name);
fs.writeFile(tempFilePath, uploadedFile.data, (err) => {
if (err) {
console.error("Ошибка при сохранении файла:", err);
return res.status(500).json({ error: "Ошибка сохранения файла" });
}
console.log("Файл успешно сохранен:", tempFilePath);
res.json("Success")
});
});
如何将文件放入本地目录并在不重新加载的情况下使用它?
不清楚问题出在哪里,您的客户端在 POST 请求上没有收到成功?