Я пытаюсь отправить изображение из компонентаactjs на сервер экспресс-узла.
Но мне не удалось, пожалуйста, помогите!
У меня есть форма с несколькими входами и просмотр ввода.
Я устанавливаю значение для состояния onChange.
Для файла выберите:
uploadInput = (e) => {
let {options} = this.state;
options[e.target.name] = e.target.files[0];
this.setState({options:options});
}
И обработку формы отправьте здесь:
saveCustomize = (e) => {
e.preventDefault();
Api.postMultipartData("settings_popups/saveCustomize",
{_id:this.state.popup._id,this.state.options},function(){
// Api.reload()
});
}
Для запросавызов, я использую Запрос npm: Запрос Npm
Если я использую данные формы:
saveCustomize = (e) => {
e.preventDefault();
var formData = new FormData(document.querySelector("#dataForm"));
Api.postMultipartData("settings_popups/saveCustomize",
{_id:this.state.popup._id,options:formData},function(){
// Api.reload()
});
}
Отправьте пустой объект.FormData не работает для меня, как, я застрял с этим.Все время получаю пустой предмет.Пожалуйста, объясните мне, как его использовать.
Другой способ, я пытался:
saveCustomize = (e) => {
e.preventDefault();
var formData = new FormData(document.querySelector("#dataForm"));
formData.append("logo_image", this.state.options.logo_image);
formData.append("bg_image", this.state.options.bg_image);
Api.postMultipartData("settings_popups/saveCustomize",{_id:this.state.popup._id,options:formData},function(){
// Api.reload()
});
}
Запрос вызова API-функции:
static async postMultipartData(api = null,body = {}, responseCallback = "", login = true) {
var options = {
url:Path.nodeServer + api,
form:{data:body}
};
if(login == true){
options["headers"] = {
'Access-Token': await Api.logToken(),
'Web-Token': await Api.webToken()
}
}
Reqest.post(
options,
async function(error, response, body){
var body = JSON.parse(response.body);
await Api.setFlash(body);
responseCallback(body);
}
);
}