Estoy desarrollando un sitio web con Next.js e intento cargar un archivo en OneDrive con la API REST de Microsoft Graph .
El documento dice que el cuerpo de la solicitud debe ser la secuencia binaria del archivo que se cargará, pero no sé cómo convertirlo en secuencia binaria.
Estoy usando el elemento de entrada HTML para guardar los datos del archivo en el file :
{name: '200311 Weekly Safety Meeting - Coronavirus (2019-nCoV).pdf', lastModified: 1644421523745, lastModifiedDate: Wed Feb 09 2022 07:45:23 GMT-0800 (Pacific Standard Time), webkitRelativePath: '', size: 700913, …}
Mi código en el lado del cliente,
const uploadFile = async () => { const res = await axios.put('/api/onedrive/file', { accessToken: token, filename: file.name, content: file, parentId: '01XA3PFKG7YWH2K7QVIZCYRP33XLQEHLZG', }); console.log(res.data); };Del lado del servidor,
const upload = async (req, res) => { const { filename, accessToken, content, parentId } = req.body; const url = `https://graph.microsoft.com/v1.0/users/69e5bc0d-ef63-4040-88cf-0ada867b7afa/drive/items/${parentId}:/${filename}:/content`; try { const result = await axios({ method: 'put', url: url, body: content, headers: { Authorization: `Bearer ${accessToken}`, }, }); res.status(200).send(result.data); } catch (err) { console.log(err); res.status(500).send(err); }};gracias por contactarnos
Pruebe el siguiente código para convertir archivos a formato binario, vea si funciona
Código:
function GetBinaryDataFromFile(strFileName) { var fso = new ActiveXObject("ADODB.Stream"); fso.Type = 1 fso.Open fso.LoadFromFile strFileName }