Galera tudo bem, preciso de uma ajudinha de voces!
Seguinte, eu tenho um UploadButton, onde eu estou pegando o File, atraves do codigo abaixo:
let file = $w("#file").value[0];
Isso me retorna uma variavel do tipo File
Agora preciso pegar o buffer desse cara (preciso do binario do arquivo), para enviar em uma API, conforme chamada abaixo:
fetch('https://api-hom.assine.online/file',
{
method: 'POST',
headers:
{
Authorization: `Bearer ${data["access_token"]}`
},
body: file
}).then((dt) =>
{
dt.json().then((dtRes) =>
{
console.log(dtRes);
});
});
O problema e que quando tento adicionar o "file" no "body" (essa linha aqui):
body: file
Eu recebo o seguinte erro:
Alguem consegue me ajudar?
Vlwwww
Olá Felipe!
Encontrei algo que pode te ajudar...
Para enviar o arquivo carregado para o wix media para esse servidor externo, use o seguinte código no backend
O código não está completo. É só para dar uma ideia de como funciona.
Caso precise você pode instalar a o pacote "form-data" via npm no editor.
Exemplo:
import {fetch, getJSON} from "wix-fetch"; const FormData = require("form-data");async function uploadFile(url) { // convert Wix URL to https: // => You will need to write the function // convert the file to readable stream let fileUrl = removeWixUrl(url); let blobRes = await fetch(fileUrl); let blob = await blobRes.blob(); let toSend = { something: "else", file: blob.stream() } let payload = getFormData(toSend); console.log({payload, toSend}); let res = await fetch("serverURL" , { method:"POST" , headers: { 'Content-Type': "multipart/form-data" // or try this application/x-www-form-urlencoded }, body: payload }); console.log({res}) let json = await res.json(); return json; } function getFormData(data) { if(data === undefined) return; let {something, file} = data; let formdata = new FormData(); formdata.append("something", something); formdata.append("file", file); return formdata; } function removeWixUrl() { return "fix me" }
Espero ter ajudado ;)