Creé un archivo binario en el navegador en JavaScript como Uint8ClampedArray y ahora necesito cargarlo en un servidor web como si hubiera sido elegido de un selector de archivos.
Intenté esto:
var data = new Uint8ClampedArray(32); data[0] = 0x42; data[1] = 0x4D; postdata = new FormData(); postdata.append('data', new Blob(data), 'test.txt'); fetch('http://localhost/',{ method: 'POST', body: postdata });Pero crea esta solicitud:
POST / HTTP/1.1 content-length: 230 content-type: multipart/form-data; boundary=----WebKitFormBoundaryfsPRCG3QGnD2bWZS ------WebKitFormBoundaryfsPRCG3QGnD2bWZS Content-Disposition: form-data; name="data"; filename="test.txt" Content-Type: application/octet-stream 6677000000000000000000000000000000 ------WebKitFormBoundaryfsPRCG3QGnD2bWZS--Y así este archivo de texto :(
6677000000000000000000000000000000¿Cómo creo un Blob binario válido ()? ¡Gracias!
prueba de esta manera,
var data = new Uint8ClampedArray(32); data[0] = 0x42; data[1] = 0x4D; postdata = new FormData(); // Blob constructor takes an Array. so you need provide `[data]` not `data` postdata.append('data', new Blob([data], {type: "text/plain"}), 'test.txt'); fetch('http://localhost/',{ method: 'POST', body: postdata });