NGINX+Node.js 关于文件上传的一个奇怪问题
- 0次
- 2021-05-26 22:07:51
- idczone
环境: ngin大带宽服务器x+node.js
操作: 本地写一个文件上传文件的表单静态页面,提交的地址是http://服务器ip/任意路径,加入任意文件进行提交。
结果: 服务器返回404错误(从log看是因为没有csrf,node返回了404)。但是node目录居然生成了一个cb109ce641a15a25a6e1399a2866649b.txt的文件(我上传的是txt文件),文件内容与上传的内容也一致。
我怀疑是nginx把文件接收后作为缓存存了起来,但是node返回404后没有删除。
请教一下各位大神,这个情况怎么破,是否可以指定不允许上传文件,或者只允许几个路径可以上传文件,或者在后端返回非200后可以自动删除文件。
跪求答案。
看下你的nodejs用的什么bodyparser, express自带的bodyparser在处理multipart请求的时候总是会将请求中的文件写到tmp目录里,不管你处理不处理,参考这个文章 http://andrewkelley.me/post/do-not-use-bodyparser-with-express-js.html
如果是这个问题的话建议你换个bodyparser来处理multipart请求,禁用express的bodyparser.例如skipper: https://www.npmjs.com/package/skipper
恩,谢谢,我也分析出来大概是这个问题,只是没想到是bodyparser捣乱,换一下试试。