1- /*global plupload */
1+ /*global plupload ,mOxie */
22/*global ActiveXObject */
33/*exported Qiniu */
44
@@ -250,11 +250,17 @@ function QiniuJsSDK() {
250250 var reset_chunk_size = function ( ) {
251251 var ie = that . detectIEVersion ( ) ;
252252 var BLOCK_BITS , MAX_CHUNK_SIZE , chunk_size ;
253+ var isSpecialSafari = ( mOxie . Env . browser === "Safari" && mOxie . Env . version <= 5 && mOxie . Env . os === "Windows" && mOxie . Env . osVersion === "7" ) || ( mOxie . Env . browser === "Safari" && mOxie . Env . os === "iOS" && mOxie . Env . osVersion === "7" ) ;
253254 if ( ie && ie <= 9 && op . chunk_size && op . runtimes . indexOf ( 'flash' ) >= 0 ) {
254255 // link: http://www.plupload.com/docs/Frequently-Asked-Questions#when-to-use-chunking-and-when-not
255256 // when plupload chunk_size setting is't null ,it cause bug in ie8/9 which runs flash runtimes (not support html5) .
256257 op . chunk_size = 0 ;
257258
259+ } else if ( isSpecialSafari ) {
260+ // win7 safari / iOS7 safari have bug when in chunk upload mode
261+ // reset chunk_size to 0
262+ // disable chunk in special version safari
263+ op . chunk_size = 0 ;
258264 } else {
259265 BLOCK_BITS = 20 ;
260266 MAX_CHUNK_SIZE = 4 << BLOCK_BITS ; //4M
@@ -372,7 +378,6 @@ function QiniuJsSDK() {
372378
373379 var chunk_size = up . getOption && up . getOption ( 'chunk_size' ) ;
374380 chunk_size = chunk_size || ( up . settings && up . settings . chunk_size ) ;
375-
376381 if ( uploader . runtime === 'html5' && chunk_size ) {
377382 if ( file . size < chunk_size ) {
378383 directUpload ( up , file , that . key_handler ) ;
@@ -392,6 +397,7 @@ function QiniuJsSDK() {
392397 'url' : 'http://up.qiniu.com/mkblk/' + blockSize ,
393398 'multipart' : false ,
394399 'chunk_size' : chunk_size ,
400+ 'required_features' : "chunks" ,
395401 'headers' : {
396402 'Authorization' : 'UpToken ' + that . token
397403 } ,
0 commit comments