上传文件到服务器端,小文件可以传送,稍大的(上百k)文件就无法发送
发布于 8 年前 作者 yuanbu2 6650 次浏览 来自 问答

现在在做上传文件的功能,文件通常大小是10M以内。

现在用了multiparty 来做,但是发送小文件没有问题,测试的是3k大小的文件。稍大一些的就无法发送。会报错 parse error: Error: Request aborted

代码大概是这样: var form = new multiparty.Form({uploadDir: __dirname+’/…/files/’}); console.log(“upload file…”); //after upload form.parse(req, function(err, fields, files) { var dstPath; if(err){ console.log('parse error: ’ + err); } else { // rename file. } } });

请问一下,这是什么问题啊?? 求大神 上传文件还有没有其他的插件或者比较稳定的第三方库?

19 回复

multiparty 默认最大文件 2M吧!使用multiparty 通过options 传入文件大小限制

我看了 multiparty 的源码,如果不传入文件大小限制是无限制的,而且我试过 var form = new multiparty.Form({uploadDir: __dirname+’/…/files/’, maxFilesSize:1010241024});

这样也不行,应该咋整呢?

@jizhuofeng 我看了 multiparty 的源码,如果不传入文件大小限制是无限制的,而且我试过 var form = new multiparty.Form({uploadDir: __dirname+’/…/files/’, maxFilesSize:1010241024});

这样也不行,应该咋整呢?

设置一下maxFieldsSize的大小试试

@jizhuofeng 改成 这样还是不行啊 ? var form = new multiparty.Form({uploadDir: __dirname+’/…/files/’, maxFieldsSize: 20010241024});

@jizhuofeng maxFieldsSize 和 maxFilesSize 有什么区别呢?

有用nginx之类的服务器程序吗?我之前遇到这问题就是nginx限制了2m,当然前提是node框架本身对文件限制没有问题的情况下。

@Hanggi 没有用nginx,前面就是 angularjs。 况且现在有个比较搞笑的问题是传个100k的都不行,几k十几k的 可以。。好郁闷。

刚才试了一下使用默认设置也是没有问题的可以直接上传,大于10M的文件也没有问题的!

@jizhuofeng 能把代码让我看一下吗。跟我的有什么区别不? 我感觉会不会是前台有什么限制导致的。。。前台不是我弄得。

如果多台客户端上传50m-100m的文件,会不会把服务器内存爆掉?

@liumoujie 谢谢 我看看 。 这个你用过吗 靠谱不啊?

@jizhuofeng 我自己写了个简单的form, 就是这样 <form action="/fileUpload" enctype=“multipart/form-data” method=“post”> <input type=“text” name=“title”><br> <input type=“file” name=“upload” multiple=“multiple”><br> <input type=“submit” value=“Upload”> </form> 依然还是不行。。。

aa.png 服务端(npm官网的例子) bb.png 目录接口,及上传后文件的信息

@yuanbu2 我用过, 并且在几个项目中都用过,没出现过什么问题。

@liumoujie 谢谢 我试试这个。

回到顶部