2012-12-07 95 views
1

我使用ajax Valum的qq上傳器(https://github.com/valums/file-uploader)將圖片上傳到Express.js(3.0.0)服務器。它適用於所有流行的瀏覽器,但Safari。發生 以下錯誤:在Safari上將文件上傳到Express.js服務器失敗

類型錯誤:在促進(/家/安德魯/項目/ dreamshare-混帳/ src目錄/主/ node_modules /快遞/ node_modules /連接/ node_modules/QS的不確定 無法讀取屬性 '長度' /lib/querystring.js:15:18) at parse(/home/andrew/projects/dreamshare-git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:53: 58) at parse(/home/andrew/projects/dreamshare-git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:50:7) at merge(/ home/(/ home/andr):andrew/projects/dreamshare-git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:68:5) (原始) at parseString(/ home/andrew)(原生的) at parseString(/ home/andrew)/ dev/src//projects/dreamshare-git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:101:6) at Object.exports.parse(/ home/andrew/projects/dreamshare- git/src/main/node_modules/express/node_modules/connect/node_modules/qs/lib/querystring.js:127:7) at 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)

能否請您指教任何解決方案?謝謝!

回答

0

確定我們在挖掘到express.js內部後對它進行了排序。問題在於舊版本的文件上傳器沒有爲上傳的文件設置類型,Safari將它設置爲默認的簡單文章,因此express.js將其錯誤地處理爲普通的後期查詢。解決方案是更新上傳庫。其中以下行正確設置了內容類型:

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