У меня есть сервер node.js, который использует express-fileupload для приема изображений.Сейчас я работаю над функцией загрузки изображения.Но я не хочу использовать , так как я предпочитаю запрос xhtml по разным причинам, но в основном потому, что я не хочу перенаправлять пользователя после того, как он загрузит изображение.
Я попытался прочитатьизображение как dataURI, отправка его на сервер, декодирование и запись в файл, который не работал и казался ресурсоемким и трудоемким.
//I used the dataString from the callback method and wrote it to a file using fs.writeFile
function dataURItoimage(dataString, callback){
const atob = require("atob");
dataString.replace("data:image/jpeg;base64,", "");
dataString.replace("data:image/png;base64,", "");
atob(dataString);
callback(null, dataString);
}
//User side code
avatarInput.addEventListener("change", (e) => {
const reader = new FileReader();
reader.readAsDataURL(avatarInput.files[0]);
reader.onload = () => {
avatar = reader.result;
tosend.avatar = reader.result;
}
}, false);
uploadButton.onclick = () => {
var request = new XMLHttpRequest();
request.open("POST", "/avatarUpload");
request.setRequestHeader("Content-Type", "application/json");
var tosend = {avatar: ""};
tosend.avatar = avatar;
request.send(JSON.stringify(tosend));
}
Есть ли лучший способ загрузитьизображение, которое пользователь может выбрать, на сервер node.js?