2017-07-10 3 views
0

Je dois envoyer, via https.request, un fichier PDF, mais je n'ai que le contenu Base64 et le seul format accepté par le serveur est le tableau d'octets. En JavaScript, côté client, c'est très simple (UInt8Array et Blob) mais ceux-ci ne sont pas implémentés dans NetSuite donc je ne peux pas les utiliser. Existe-t-il un autre moyen de le faire sans utiliser UInt8Array ou Blob?Convertir un Base64 en un SuiteScript Blob Netsuite (côté serveur Javascript)

Je compose le corps de la requête multipart/form-data et dans le corps j'ai décodé le Base64 en une chaîne UTF-8 mais cela ne fonctionne pas, il envoie le fichier correctement mais est vide.

Le format dont j'ai besoin est application/octet-stream.

Répondre

0

Essayez d'utiliser la fonction suivante pour convertir en Uint8Array:

function stringToUint8Array(input) { 
    var out = new Array(input.length); 
    for (var i = 0; i < input.length; i++) { 
     out[i] = input.charCodeAt(i); 
    } 
    return out; 
} 

Il pourrait bousiller quelques caractères bien, je n'ai jamais testé à cette fin. Je l'ai utilisé pour une bibliothèque de compression que j'ai inversée pour travailler sur le serveur et cela a fonctionné.

+0

Est-ce juste assez pour la demande? Et le Blob? –