{"_id":"multipart-formdata","_rev":"8-057320531ac883ddd2473a0ebfe78cad","name":"multipart-formdata","description":"A zero-dependency multipart/form-data parser","dist-tags":{"latest":"1.1.0"},"versions":{"1.1.0":{"name":"multipart-formdata","version":"1.1.0","description":"A zero-dependency multipart/form-data parser","main":"app.js","author":{"name":"Cristian Salazar","url":"christiansalazarh@gmail.com"},"license":"MIT","scripts":{"test":"mocha --bail --reporter dot --timeout 10000 ./test/*-spec.js"},"repository":{"type":"git","url":"git+https://github.com/UWFosterIT/multipart-formdata.git"},"keywords":["multipart/form-data","multipart","form-data","form","fileuploader","upload"],"bugs":{"url":"https://github.com/UWFosterIT/multipart-formdata/issues"},"homepage":"https://github.com/UWFosterIT/multipart-formdata#readme","devDependencies":{"chai":"^4.1.2","mocha":"^4.1.0"},"gitHead":"cb9d900932399ef1448229864157da429e30866b","_id":"multipart-formdata@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"sschadwick","email":"sschadwick@gmail.com"},"dist":{"integrity":"sha512-y7A1887vcLB9XUYrxZNEHXa0vi2KCFZXiZTcilVp0626S5LuG/s/8ee11oLclVqDm2BBvLFETX20O/dHYS/J8g==","shasum":"3cf9b3963a0a7a4f52c4f73364d872c9c116e940","tarball":"https://registry.npmjs.org/multipart-formdata/-/multipart-formdata-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGIvN4zWH7KdS7dupXviTPPz8hXXeHMffYtPu3qy/6LWAiA5NP6Gk68A2PlsNZGOwyLzhK3NZP60B0plE/7xS/cenA=="}]},"maintainers":[{"name":"sschadwick","email":"sschadwick@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/multipart-formdata-1.1.0.tgz_1515783846237_0.8970339968800545"},"directories":{}}},"readme":"# multipart-formdata\n\nA zero-dependency multipart/form-data parser.\n\n### Background\n\nSometimes you only have access to the raw multipart payload and need it to be\nparsed in order to extract files or data.\n\nExample: Using a serverless api such as `claudia-api-builder` with AWS Api-Gateway/Lambda.\n\nThe raw payload formatted as multipart/form-data will looks like this one:\n\n```\n// req.body\n\n------WebKitFormBoundaryDtbT5UpPj83kllfw\nContent-Disposition: form-data; name=\"uploads\"; filename=\"somebinary.dat\"\nContent-Type: application/octet-stream\n\nsome binary data...maybe the bits of a image..\n------WebKitFormBoundaryDtbT5UpPj83kllfw\nContent-Disposition: form-data; name=\"uploads\"; filename=\"sometext.txt\"\nContent-Type: text/plain\n\nhello world\n------WebKitFormBoundaryDtbT5UpPj83kllfw--\n```\n\nThe lines above represent a raw multipart/form-data payload sent by an HTTP client via form submission containing two files. The multipart parser allows us to separate the files and extract header information.\n\n### Usage\n\n* `req.body`\n\n```\n------WebKitFormBoundaryDtbT5UpPj83kllfw\nContent-Disposition: form-data; name=\"uploads[]\"; filename=\"sometext.txt\"\nContent-Type: application/octet-stream\n\nhello how are you\n------WebKitFormBoundaryDtbT5UpPj83kllfw--\n```\n\n* boundary, the unique string which serve as a 'separator' between parts, normally parsed from headers. In this case, the boundary is:\n\n```\n\t----WebKitFormBoundaryDtbT5UpPj83kllfw\n```\n\n\n* Example implementation\n\n```javascript\n\tvar multipart = require('parse-multipart');\n\tvar body = \"..the multipart raw body..\";\n\tvar boundary = \"----WebKitFormBoundaryDtbT5UpPj83kllfw\";\n\tvar parts = multipart.parse(body, boundary);\n\n  /*\n  console.log(parts);\n\n\t[{\n\t\tdata:     <Buffer 41 41 41 41 42 42 42 42>,\n\t\tfield:    '',\n\t\tfilename: 'A.txt',\n\t\tname:     'file',\n\t\ttype:     'text/plain',\n\t}, ...];\n\t*/\n```\n\nThe returned data is an array of objects, each with a filename, any data fields, field name, content-type and data properties. The data prop is a Buffer (see also Node Buffer).\n","maintainers":[{"email":"sawako.yoriko@gmail.com","name":"ishidas"},{"email":"loopercat@gmail.com","name":"ccloops"},{"email":"kevin.npmjs@kevintechie.com","name":"kevintechie"},{"email":"sschadwick@gmail.com","name":"sschadwick"}],"time":{"modified":"2022-05-10T00:50:11.644Z","created":"2018-01-12T19:04:06.305Z","1.1.0":"2018-01-12T19:04:06.305Z"},"homepage":"https://github.com/UWFosterIT/multipart-formdata#readme","keywords":["multipart/form-data","multipart","form-data","form","fileuploader","upload"],"repository":{"type":"git","url":"git+https://github.com/UWFosterIT/multipart-formdata.git"},"author":{"name":"Cristian Salazar","url":"christiansalazarh@gmail.com"},"bugs":{"url":"https://github.com/UWFosterIT/multipart-formdata/issues"},"license":"MIT","readmeFilename":"README.md"}