提问者:小点点

如何用普通JavaScript解析表单数据?


我试图在node.js中创建一个简单的图像主机,但是在解析表单数据时遇到了麻烦

我的测试应用程序生成的表单(用于上传图像)以以下格式发布数据:

----------------------8d8317fa35f1280
Content-Disposition: form-data; name="ImageUploader"; filename="Test.png"
Content-Type: image/png

<binary PNG data...>

----------------------8d8317fa35f1280--

我计划将图像数据存储在键值数据库中,其中键是文件的md5散列,值是raw.png数据。

我知道这在“Express”javascript框架中是非常可能的,但我不希望使用任何框架,我愿意使用库,因为它速度很快。

我想避免正则表达式

如何解析此表单提交数据中的文件名和raw.png数据?


共1个答案

匿名用户

您需要使用库来解析此类数据。 Foridable就是一个例子,但我建议使用multer

以莫特为例,

const multer = require('multer');
const upload = multer({dest:'temp/'}) // path to a temporary folder where files will be saved

app.post('/upload', upload.single('file'), (req,res)=>{ // use middleware
    // process file here
    // file will be in req.file
})

这是一个非常简单的例子,但是multer提供了非常广泛的上传方法,您应该检查这些方法。

要获取文件名,请参阅req.file的originalname属性;要读取文件,您需要读取文件req.file.path,它是实际文件