我试图将文件发送到另一台服务器进行保存,但是我不知道如何从请求中读取文件。我想它应该作为代理,但我做不到。
我想了解如何解析带有文件的POST请求
我曾尝试在其文档的“自定义存储”示例中尝试使用multer,但随后遇到了如何将其发送到另一个地方的问题,
我发现“请求” npm模块可以创建到另一台服务器的流请求,我尝试了一下,但在使用multer的目标服务器中出现了错误。
应该保存我文件的服务器控制器:
export class UploadController {
public uploadAndSaveFile(req: Request, res: Response, next: NextFunction) {
upload.single('file')(req, res, (err: any) => {
if (err) {
console.error(err);
return;
}
});
if (!req.file) {
res.sendStatus(400);
console.log('not');
return;
}
const filePath = req.file.path;
const fileName = req.file.filename;
const mimeType = req.file.mimetype;
uploadService.create(filePath, fileName, mimeType)
.then((fileModel: any) => res.send(fileModel.recordset))
.catch(next);
}
}
尝试与多方合作
const form = new multiparty.Form();
form.on('part', (part: any) => {
request.post(`${config.get('services:StorageService')}/api/v1/upload`, {
form: {
file: part
}
});
});
尝试了multer:
StorageStream.prototype._handleFile = function _handleFile(req, file, cb) {
this.getDestination(req, file, function (err, path) {
if (err) return cb(err);
request.post({
url: `${config.get('services:StorageService')}/api/v1/upload`,
formData: {
file: file.stream,
}
}, (err: any, res: any, body: any) => {
if (err) {
logger.error(err);
return;
}
console.log(body);
})
});
};