我试图在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数据?
您需要使用库来解析此类数据。 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,它是实际文件