javascript - 如何使用 express.js 将文件传递到我的服务器
问题描述
我有一个服务器(index.js)和一个包含表单的 HTML 文件(form.html)。表单接受文本输入和图像输入。一旦用户按下表单上的按钮,数据将使用 POST 发送到服务器(index.js)。我能够将数据发送到服务器,但没有发送图像文件。它变成空的。在网上搜索后,我发现问题可能是由于标题(链接),但我不知道如何添加超过 2 种类型的“Content-Type”。
index.js
app.post("/service-user-add-pet", function (req, res) {
console.log("receiving data from client: ");
console.log(req.body); // outputs: {petName:'randomname', petImageUrl:{},}
});
表单.js
$("#addPet_updateBtn").click((event) => {
console.log("update button clicked");
const data = {
petName: $("#petName").val(),
petImageUrl: petImage[0],
};
console.log(data); // outputs: {petName:'randomname', petImageUrl:{File},}
sendToServer(data, "/service-user-add-pet").then((res) => {
if (res.status == "success") {
alert("Pet added successfully");
}
});
});
async function sendToServer(data, url) {
const options = {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(data),
};
const res = await fetch(url, options);
return await res.json();
}
这就是我得到的方式petImage[0]
:
...
...
reader = new FileReader();
reader.onload = function () {
reader.readAsDataURL(petImage[0]);
解决方案
推荐阅读
- r - 如何操作从 Excel 导入 R 的日期时间变量
- ruby-on-rails-5 - NoMethodError 运行集成测试,RailsTutorial Ch9
- azure - Azure 数据工厂 v2 - 到 Cosmos DB 的 OData
- git - 如何配置 Azure Databricks 以使用 VSTS 进行源代码控制
- python - 是否可以使用字符串调用模型字段?使用字符串访问类成员变量?
- css - 无法使用 spring 提供静态资源,而是接收索引
- java - Swing中自定义六边形JButton之间的空间太大
- javascript - target="_blank" 不打开新窗口
- linux - 无法连接到远程 MongoDB
- node.js - 在 create-react-app 中配置生产环境(SyntaxError: Unexpected token < in JSON at position 0)