1

我正在使用 ajax Valum 的 qq 上传器 (https://github.com/valums/file-uploader) 将图片上传到 Express.js (3.0.0) 服务器。它适用于除 Safari 之外的所有流行浏览器。出现以下错误:

TypeError:无法读取提升时未定义的属性“长度”(/home/andrew/projects/dreamshare-git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:15:18)在解析 (/home/andrew/projects/dreamshare-git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:53:58) 在解析 (/home/andrew/projects/ dreamshare-git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:50:7)在合并(/home/andrew/projects/dreamshare-git/src/main/node_modules/ express/node_modules/connect/node_modules/qs/lib/querystring.js:68:5) 在 String.split.reduce.base (/home/andrew/projects/dreamshare-git/src/main/node_modules/express/node_modules/ connect/node_modules/qs/lib/querystring.js:111:14) 在数组。在 Object.exports.parse 的 parseString (/home/andrew/projects/dreamshare-git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:101:6) 处减少(本机) (/home/andrew/projects/dreamshare-git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:127:7) 在 IncomingMessage.module.exports (/home/andrew/ projects/dreamshare-git/src/main/node_modules/express/node_modules/connect/lib/middleware/urlencoded.js:66:18) 在 IncomingMessage.EventEmitter.emit (events.js:90:17)在 IncomingMessage.EventEmitter.emit (events.js:90: 17)在 IncomingMessage.EventEmitter.emit (events.js:90: 17)

你能建议任何解决方案吗?谢谢!

4

1 回答 1

0

好的,我们在深入研究 express.js 内部后对其进行了排序。问题是旧版本的文件上传器没有为上传的文件设置类型,而 Safari 将其设置为默认的普通帖子,因此 express.js 错误地将其处理为普通帖子查询。解决方案是更新上传库。其中以下行正确设置了内容类型:

xhr.setRequestHeader("Content-Type", file.type);
于 2012-12-07T13:53:14.203 回答