我有一个node.js服务器,它使用express-fileupload接受图像。现在,我正在使用上载图像的功能。但是我不想使用
答案 0 :(得分:1)
所以我是这样做的:
var request = new XMLHttpRequest();
request.open("POST", "/test");
var fd = new FormData();
fd.append("file", avatarInput.files[0]);
request.send(fd);
我创建了一个FormData对象,附加了图像,用户在名为“ avatarInput”的输入中选择了该图像,然后将该对象发送到服务器。 在服务器端,我使用express-fileupload访问文件:
app.post("/test", (req, res) => {
if(req.files){
//With the follwing command you can save the recieved image
req.files.file.mv("./file.png", (err) => {if(err)throw err});
}
res.end();
});
答案 1 :(得分:0)
您可以尝试以下示例。它为我工作。希望它能对您有所帮助。
发送dataURL引发Ajax请求:
const dataURL = snapshotCanvas.toDataURL('image/png');
$.ajax({
url: 'http://localhost:3000/upload-image',
dataType: 'json',
data: { data: dataURL },
type: 'POST',
success: function(data) {}
});
接收请求:
router.post('/', (req, res) => {
const base64 = req.body.data.replace(/^data:image\/png;base64,/, "");
fs.writeFileSync(`uploads/images/newImage.jpg`, base64, {encoding: 'base64'});
}