【问题标题】:File uploading in Safari to Express.js server fails在 Safari 中将文件上传到 Express.js 服务器失败
【发布时间】:2012-12-07 21:53:14
【问题描述】:

我正在使用 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) 在 Array.reduce (本机) 在 parseString (/home/andrew/projects/dreamshare-git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:101:6) 在 Object.exports.parse (/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)

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

【问题讨论】:

    标签: ajax node.js safari express valums-file-uploader


    【解决方案1】:

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

    xhr.setRequestHeader("Content-Type", file.type);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-05
      • 2011-05-23
      • 1970-01-01
      • 2015-11-24
      • 2022-06-22
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      相关资源
      最近更新 更多