Estoy tratando de publicar un archivo en la API, mi archivo se muestra en la consola, pero en las cargas útiles de la API se muestra [archivo de objeto] al cargar.
Esta es una función para tomar archivos.
handleFileChange = (e) => { const files = e.target.files[0]; this.setState({ document: files }); console.log("Guru4666", this.state.document); };Luego, el estado se inserta en un objeto llamado valor de adjudicación.
SubmitAward() { var awardValue = { title: this.state.awardTitle, award_img: this.state.document, }; console.log("awardValue", awardValue); this.state.awarddata.push(awardValue); }Luego se llama a la API.
instructor_register() { var titlearr = []; var awardimgarr= []; const UserToken = localStorage.getItem("UserToken"); this.state.awarddata.map((Data) => { console.log("AwardDataa", Data); titlearr.push(Data.title); awardimgarr.push(Data.award_img); }); const formdata = new FormData(); formdata.append("first_name",this.state.firstname) formdata.append("instructor_award_name",titlearr) formdata.append("instructor_award_img",awardimgarr) axios({ method: "post", url: `${API_AUTH_URL}instructor-register`, data: formdata, headers: { Authorization: "Bearer" + UserToken }, }) .then((response) => { //this.setState({ modalVisibleLoader: false }) console.log("response.....", response.data); }La carga útil es
instructor_award_img: [object File]Está intentando agregar una matriz al objeto formdata. Este no es un tipo de datos compatible, por lo que se convierte en una cadena.
Los tipos de datos admitidos son cadenas y blobs (los archivos son un tipo de blob).
Agregue el archivo en su lugar.
Si desea agregar varios archivos, hágalo recorriendo la matriz y agregando cada archivo por turno.