使用 formidable 将文件上传到 koa-js 服务器
Uploading file to koa-js server with formidable
我正在尝试将文件从我的 Ionic 应用程序上传到基于 koa.js 的节点 js 服务器。对于使用 koa-body 和 formidable 解析正文。
这是我的服务器:
this.app.use(formidable());
this.app.use(koaBody({
formidable:{
uploadDir: __dirname + '/uploads', // directory where files will be uploaded
keepExtensions: true, // keep file extension on upload
multiples: true
},
multipart: true,
urlencoded: true,
formLimit: '5mb',
}));
this.app.use(_.post('/wish/photo/upload', async (ctx, next) => {
//ctx.body = JSON.stringify(ctx.request);
next();
}));
这是我在前端的文件上传功能:
uploadFromPc(files, parameters){
let headers = new Headers();
let formData = new FormData();
Array.from(files).forEach(file => formData.append('photo', file));
let options = new RequestOptions({ headers: headers });
//options.params = parameters;
return this.http.post(EnvVariables.apiEndpoint + 'wish/photo/upload', formData, options)
.subscribe(response => console.log(response))
}
一切正常,但没有创建文件,没有显示错误,什么都没有。
有什么想法吗?
一段时间后,我解决了文件上传问题。原点设置后我不得不运行强大的中间件。另外,我不得不将 koaBody 函数移动到 post 动作
router.post('/wish/photo/upload', koaBody({
formidable: {
uploadDir: __dirname + '/uploads', // directory where files will be uploaded
keepExtensions: true, // keep file extension on upload
multiples: true,
},
multipart: true,
urlencoded: true,
formLimit: '5mb',
}), (ctx, next) => {
ctx.body = "Success";
});
我正在尝试将文件从我的 Ionic 应用程序上传到基于 koa.js 的节点 js 服务器。对于使用 koa-body 和 formidable 解析正文。
这是我的服务器:
this.app.use(formidable());
this.app.use(koaBody({
formidable:{
uploadDir: __dirname + '/uploads', // directory where files will be uploaded
keepExtensions: true, // keep file extension on upload
multiples: true
},
multipart: true,
urlencoded: true,
formLimit: '5mb',
}));
this.app.use(_.post('/wish/photo/upload', async (ctx, next) => {
//ctx.body = JSON.stringify(ctx.request);
next();
}));
这是我在前端的文件上传功能:
uploadFromPc(files, parameters){
let headers = new Headers();
let formData = new FormData();
Array.from(files).forEach(file => formData.append('photo', file));
let options = new RequestOptions({ headers: headers });
//options.params = parameters;
return this.http.post(EnvVariables.apiEndpoint + 'wish/photo/upload', formData, options)
.subscribe(response => console.log(response))
}
一切正常,但没有创建文件,没有显示错误,什么都没有。
有什么想法吗?
一段时间后,我解决了文件上传问题。原点设置后我不得不运行强大的中间件。另外,我不得不将 koaBody 函数移动到 post 动作
router.post('/wish/photo/upload', koaBody({
formidable: {
uploadDir: __dirname + '/uploads', // directory where files will be uploaded
keepExtensions: true, // keep file extension on upload
multiples: true,
},
multipart: true,
urlencoded: true,
formLimit: '5mb',
}), (ctx, next) => {
ctx.body = "Success";
});