@@ -74,8 +74,7 @@ $(document).ready(function(){
7474} ) ;
7575function listObjects ( path = '' ) {
7676 $ ( "#items" ) . attr ( "style" , "opacity: 0.5;-moz-opacit: 0.5;" ) ;
77- //////////
78- console . log ( '-----listObjects("' + path + '")-----' ) ;
77+ console . log ( '-----listObjects("' + decodeURI ( path ) + path + ' = ' + '")-----' ) ;
7978 $ . ajax ( {
8079 type : 'POST' ,
8180 //async: false,
@@ -85,7 +84,7 @@ function listObjects(path = ''){
8584 } ,
8685 dataType : 'text' ,
8786 success : function ( data ) {
88- console . log ( 'ajaxpost listObjects() succeed:' + data ) ;
87+ console . log ( 'ajaxpost listObjects() succeed:' + decodeURI ( data ) ) ;
8988 try {
9089 result_listObjects = JSON . parse ( data ) ;
9190 } catch ( e ) { //异常捕获: 捕获请求成功但无法解析JSON的异常,多为listObjects.action抛出的异常
@@ -96,27 +95,28 @@ function listObjects(path = ''){
9695 return ;
9796 }
9897 console . log ( 'JSON.parse() succeed' ) ;
99- //我跟你说这里开始才是列表动作
98+ //列表动作
10099 $ ( "#list" ) . html ( '' ) ; //清空原有内容
101100 $ . each ( result_listObjects . folderList , function ( i , folderInfo ) {
102101 $ ( "#list" ) . append (
103- '<li class="item folder" data="' + encodeURI ( path + folderInfo ) + '">' +
104- '<a href="#' + encodeURI ( path + folderInfo ) + '">' +
102+ '<li class="item folder" data="' + path + encodeURI ( folderInfo ) + '">' +
103+ '<a href="#' + path + encodeURI ( folderInfo ) + '">' +
105104 '<span class="icon square">' +
106105 '<img src="static/_h5ai/public/images/themes/default/folder.svg" alt="folder" />' +
107106 '</span>' +
108107 '<span class="icon landscape">' +
109108 '<img src="static/_h5ai/public/images/themes/default/folder.svg" alt="folder" />' +
110109 '</span>' +
111110 '<span class="label">' + folderInfo . replace ( "/" , "" ) + '</span>' +
111+ '<span class="date">-</span>' +
112112 '<span class="size">-</span>' +
113113 '</a>' +
114114 '</li>'
115115 ) ;
116116 } ) ;
117117 $ . each ( result_listObjects . fileList , function ( i , fileInfo ) {
118118 $ ( "#list" ) . append (
119- '<li class="item file" data="' + encodeURI ( path + fileInfo [ 0 ] ) + '">' +
119+ '<li class="item file" data="' + path + encodeURI ( fileInfo [ 0 ] ) + '">' +
120120 '<a>' +
121121 '<span class="icon square">' +
122122 '<img src="static/_h5ai/public/images/themes/default/file.svg" alt="file" />' +
@@ -125,7 +125,7 @@ function listObjects(path = ''){
125125 '<img src="static/_h5ai/public/images/themes/default/file.svg" alt="file">' +
126126 '</span>' +
127127 '<span class="label">' + fileInfo [ 0 ] + '</span>' +
128- '<span class="date">' + fileInfo [ 1 ] + '</span>' +
128+ '<span class="date">' + fileInfo [ 1 ] + '</span>' +
129129 '<span class="size">' + fileInfo [ 2 ] + '</span>' +
130130 '</a>' +
131131 '</li>'
@@ -148,21 +148,23 @@ function listObjects(path = ''){
148148 console . log ( textStatus ) ;
149149 } ,
150150 complete : function ( ) {
151+ //渲染顶部crumbbar和back按钮
151152 if ( path !== '' ) { //通过有path参数传入判断当前不为根文件夹
152- var pathSplited = path . split ( "/" ) ; //分割文件夹路径字符串为数组
153+ var pathSplited = decodeURI ( path ) . split ( "/" ) ; //分割文件夹路径字符串为数组,此处解码是为了防止由于js标准不同导致的对"/"的处理标准不同
153154 var nowFolderName = pathSplited [ pathSplited . length - 2 ] ;
154155 var parentFolderName = pathSplited [ pathSplited . length - 3 ] ? pathSplited [ pathSplited . length - 3 ] : '/' ; //上一层文件夹的名字,其中一个-1是数组下标,另一个是由于split(path)的结果最后一个元素总为空,再一个是当前文件夹名
155156 var parentFolder ;
156-
157- console . log ( 'path.split() succeed:\n' + print_arr ( pathSplited ) ) ;
157+ $ . each ( pathSplited , function ( i ) { //重新编码
158+ pathSplited [ i ] = encodeURI ( pathSplited [ i ] ) ;
159+ } ) ;
158160 $ ( "#crumbbar" ) . html (
159161 '<a href="#" class="crumb">' +
160162 '<span class="label">' + appConfig . SITE_NAME + '</span>' +
161163 '<img class="hint" src="static/_h5ai/public/images/themes/default/folder-page.svg" alt="#">' +
162164 '</a>' +
163- '<a href="#' + encodeURI ( path ) + '" class="crumb" data="' + encodeURI ( pathSplited [ 0 ] ) + '/">' + //手动定义crumbbar的第一层data
165+ '<a href="#' + path + '" class="crumb" data="' + pathSplited [ 0 ] + '/">' + //手动定义crumbbar的第一层data
164166 //'<img class="sep" src="static/_h5ai/public/images/ui/crumb.svg" alt=">">' +
165- '<span class="label">' + pathSplited [ 0 ] + '</span>' +
167+ '<span class="label">' + decodeURI ( pathSplited [ 0 ] ) + '</span>' +
166168 '</a>'
167169 ) ;
168170 //合成上一层文件夹路径用作“返回上一层”按钮使用,我他妈就是不写函数
@@ -171,47 +173,47 @@ function listObjects(path = ''){
171173 } else if ( pathSplited [ 0 ] !== '' ) { //存在多级子目录,别问我我也不知道怎么来的
172174 parentFolder = pathSplited [ 0 ] ;
173175 $ ( "#crumbbar" ) . append (
174- '<a href="#' + encodeURI ( path ) + '" class="crumb" data="' + encodeURI ( parentFolder + '/' + pathSplited [ 1 ] ) + '/">' + //手动定义crumbbar的第一层data后添加每层数据,+1是因为要取得比父级目录多一层,并在结尾添加“/”
176+ '<a href="#' + path + '" class="crumb" data="' + parentFolder + '/' + pathSplited [ 1 ] + '/">' + //手动定义crumbbar的第一层data后添加每层数据,+1是因为要取得比父级目录多一层,并在结尾添加“/”
175177 '<img class="sep" src="static/_h5ai/public/images/ui/crumb.svg" alt=">">' +
176- '<span class="label">' + pathSplited [ 1 ] + '</span>' +
178+ '<span class="label">' + decodeURI ( pathSplited [ 1 ] ) + '</span>' +
177179 '</a>'
178180 ) ;
179181 for ( i = 1 ; i < pathSplited . length - 2 ; i ++ ) { //-2是因为只要取到父级目录即可
180182 if ( pathSplited [ i ] !== '' ) {
181183 parentFolder = parentFolder + '/' + pathSplited [ i ] ;
182184 $ ( "#crumbbar" ) . append (
183- '<a href="#' + encodeURI ( path ) + '" class="crumb" data="' + encodeURI ( parentFolder + '/' + pathSplited [ i + 1 ] ) + '/">' + //手动定义crumbbar的第一层data后添加每层数据,+1是因为要取得比父级目录多一层,并在结尾添加“/”
185+ '<a href="#' + path + '" class="crumb" data="' + parentFolder + '/' + pathSplited [ i + 1 ] + '/">' + //手动定义crumbbar的第一层data后添加每层数据,+1是因为要取得比父级目录多一层,并在结尾添加“/”
184186 '<img class="sep" src="static/_h5ai/public/images/ui/crumb.svg" alt=">">' +
185- '<span class="label">' + pathSplited [ i + 1 ] + '</span>' +
187+ '<span class="label">' + decodeURI ( pathSplited [ i + 1 ] ) + '</span>' +
186188 '</a>'
187189 ) ;
188190 }
189191 }
190192 parentFolder = parentFolder + '/' ; //在路径结尾添加“/”才能正确请求
191193 }
192- console . log ( 'parentFolder: ' + parentFolder ) ;
194+ console . log ( 'parentFolder: ' + decodeURI ( parentFolder ) ) ;
193195 $ ( "#crumbbar a.crumb:last" ) . attr ( "class" , "crumb active" ) ; //设置crumbbar的最后一层
194- $ ( document ) . attr ( "title" , nowFolderName + " - " + appConfig . SITE_NAME ) ;
196+ $ ( document ) . attr ( "title" , decodeURI ( nowFolderName ) + " - " + appConfig . SITE_NAME ) ;
195197 $ ( "#back" ) . html (
196- '<li class="item folder folder-parent" data="' + encodeURI ( parentFolder ) + '">' +
197- '<a href="#' + encodeURI ( parentFolder ) + '">' +
198+ '<li class="item folder folder-parent" data="' + parentFolder + '">' +
199+ '<a href="#' + parentFolder + '">' +
198200 '<span class="icon square">' +
199201 '<img src="static/_h5ai/public/images/themes/default/folder-parent.svg" alt="folder">' +
200202 '</span>' +
201203 '<span class="icon landscape">' +
202204 '<img src="static/_h5ai/public/images/themes/default/folder-parent.svg" alt="folder">' +
203205 '</span>' +
204206 '<span class="label">' +
205- '<b>' + parentFolderName + '</b>' +
207+ '<b>' + decodeURI ( parentFolderName ) + '</b>' +
206208 '</span>' +
207209 '<span class="size" data-bytes="null">' +
208210 '</span>' +
209211 '</a>' +
210212 '</li>'
211213 ) ;
212214 } else {
213- $ ( "#crumbbar" ) . html ( //每次都重置crumbbar
214- '<a href="#" class="crumb active">' +
215+ $ ( "#crumbbar" ) . html (
216+ '<a href="#" class="crumb site active">' +
215217 '<span class="label">' + appConfig . SITE_NAME + '</span>' +
216218 '<img class="hint" src="static/_h5ai/public/images/themes/default/folder-page.svg" alt="#">' +
217219 '</a>'
@@ -224,45 +226,27 @@ function listObjects(path = ''){
224226 } ) ;
225227}
226228function downloadObject ( target , who ) {
227- console . log ( '-----getObject("' + target + '")-----' ) ;
229+ console . log ( '-----getObject("' + decodeURI ( target ) + '")-----' ) ;
228230 $ ( who ) . attr ( 'style' , 'opacity: 0.5;-moz-opacit: 0.5;' ) ;
229- if ( appConfig . DIRECTLY_GET_OBJECT === true ) {
230-
231- } else {
232- $ . ajax ( {
233- type : 'POST' ,
234- url : 'app/action/getSignedUrlForGettingObject.action.php' ,
235- data : {
236- target : decodeURI ( target ) ,
237- } ,
238- async : false ,
239- dataType : 'json' ,
240- success : function ( data ) {
241- console . log ( 'ajaxpost getSignedUrlForGettingObject.action.php:\n' + data ) ;
242- $ ( who ) . find ( "a" ) . attr ( "href" , data ) . attr ( "target" , "_blank" ) ;
243- //a.appendTo('body');
244- } ,
245- error : function ( textStatus , errorThrown ) {
246- alert ( 'ERROR!\najaxget app.config failed:\nGo FLUCKING to check for console.log' ) ;
247- console . log ( XMLHttpRequest . status ) ;
248- console . log ( XMLHttpRequest . readyState ) ;
249- console . log ( textStatus ) ;
250- }
251- } ) ;
252- }
231+ $ . ajax ( {
232+ type : 'POST' ,
233+ url : 'app/action/getSignedUrlForGettingObject.action.php' ,
234+ data : {
235+ target : decodeURI ( target ) ,
236+ } ,
237+ async : false ,
238+ dataType : 'json' ,
239+ success : function ( data ) {
240+ console . log ( 'ajaxpost getSignedUrlForGettingObject.action.php:\n' + decodeURI ( data ) ) ;
241+ $ ( who ) . find ( "a" ) . attr ( "href" , data ) . attr ( "target" , "_blank" ) ;
242+ //a.appendTo('body');
243+ } ,
244+ error : function ( textStatus , errorThrown ) {
245+ alert ( 'ERROR!\najaxget app.config failed:\nGo FLUCKING to check for console.log' ) ;
246+ console . log ( XMLHttpRequest . status ) ;
247+ console . log ( XMLHttpRequest . readyState ) ;
248+ console . log ( textStatus ) ;
249+ }
250+ } ) ;
253251 $ ( who ) . attr ( "style" , "opacity: 1.0;-moz-opacit: 1.0;" ) ;
254- }
255- function print_arr ( arr , space , space2 ) {
256- space = space || '' ;
257- space2 = space2 || ' ' ;
258- var str = "Array\n" + space + "(\n" ;
259- for ( var i = 0 ; i < arr . length ; i ++ ) {
260- if ( Object . prototype . toString . call ( arr [ i ] ) == '[object Array]' ) {
261- str += space2 + '[' + i + "] => " + print_arr ( arr [ i ] , space + ' ' , space2 + ' ' ) ;
262- } else {
263- str += space2 + '[' + i + "] => " + arr [ i ] + "\n" ;
264- }
265- }
266- str += space + ")\n" ;
267- return str ;
268252}
0 commit comments