Rup*_*esh -1 javascript node.js multer angular
我将文件详细信息从 Angular 发送到我的 app.js
onFileSelected(event: EventEmitter<File[]>) {
const file: File = event[0];
console.log(file);
const formData = new FormData();
formData.append('file', file);
const r = new XMLHttpRequest();
r.open('POST', '/user/upload');
r.send(formData);
}
Run Code Online (Sandbox Code Playgroud)
然后在app.js中
const multer = require('multer');
const upload = multer({dest:'./pics/'});
router.post('/upload', upload.single('image'), (req,res) => {
const body = req.file;
console.log(body);
const base64Data = new Buffer(JSON.stringify(body)).toString("base64");
console.log(base64Data);
}
Run Code Online (Sandbox Code Playgroud)
和我的console.log(body)给予
{ fieldname: 'image',
originalname: '21329726_1866651723650020_188839340_o.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: './pics/',
filename: '5146c9818ff517c426e34ad84ff3513f',
path: 'pics/5146c9818ff517c426e34ad84ff3513f',
size: 94093
}
Run Code Online (Sandbox Code Playgroud)
现在问题来了——
1 - 我不想将image/pdf文件上传到任何文件夹中,但它正在上传到'./pics/'.
2-我想上传该文件,这就是cloudinary 为什么我想生成base64该文件,但是当我生成base64并上传该文件到云中时,它会出现错误。
我认为这不是正确的编码方法,base64或者我正在编码错误的数据格式。
请帮我。
通过提供选项对象(在本例中{dest:'./pics/'}),您表明multer要将文件存储在该目录中。相反,将其配置为将文件保存在内存中:
var storage = multer.memoryStorage()
var upload = multer({ storage: storage })
Run Code Online (Sandbox Code Playgroud)
根据文档,该file对象还应该包含一个buffer包含文件数据的属性。您应该能够执行以下操作:
console.log(body.buffer.toString("base64"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9225 次 |
| 最近记录: |