@@ -677,7 +677,7 @@ export default class ApiRequest extends LitElement {
677
677
${ this . responseIsBlob
678
678
? html `
679
679
< div class ="tab-content col " style ="flex:1; display:${ this . activeResponseTab === 'response' ? 'flex' : 'none' } ; ">
680
- < button class ="m-btn " @click ="${ this . downloadResponseBlob } "> DOWNLOAD </ button >
680
+ < button class ="m-btn " @click ="${ this . downloadResponseBlob } "> ${ this . responseBlobType . toUpperCase ( ) } </ button >
681
681
</ div > `
682
682
: html `
683
683
< div class ="tab-content col m-markdown " style ="flex:1;display:${ this . activeResponseTab === 'response' ? 'flex' : 'none' } ; " >
@@ -1003,18 +1003,24 @@ export default class ApiRequest extends LitElement {
1003
1003
resp . json ( ) . then ( ( respObj ) => {
1004
1004
me . responseText = JSON . stringify ( respObj , null , 2 ) ;
1005
1005
} ) ;
1006
- } else if ( contentType . includes ( ' octet-stream' ) ) {
1006
+ } else if ( RegExp ( '7z| octet-stream|pdf|tar|zip' ) . test ( contentType ) ) {
1007
1007
me . responseIsBlob = true ;
1008
+ me . responseBlobType = 'download' ;
1008
1009
const contentDisposition = resp . headers . get ( 'content-disposition' ) ;
1009
1010
me . respContentDisposition = contentDisposition ? contentDisposition . split ( 'filename=' ) [ 1 ] : 'filename' ;
1010
- resp . blob ( ) . then ( ( respBlob ) => {
1011
- me . responseBlobUrl = URL . createObjectURL ( respBlob ) ;
1012
- } ) ;
1011
+ } else if ( RegExp ( '^audio|^image|^video' ) . test ( contentType ) ) {
1012
+ me . responseIsBlob = true ;
1013
+ me . responseBlobType = 'show' ;
1013
1014
} else {
1014
1015
resp . text ( ) . then ( ( respText ) => {
1015
1016
me . responseText = respText ;
1016
1017
} ) ;
1017
1018
}
1019
+ if ( me . responseIsBlob ) {
1020
+ resp . blob ( ) . then ( ( respBlob ) => {
1021
+ me . responseBlobUrl = URL . createObjectURL ( respBlob ) ;
1022
+ } ) ;
1023
+ }
1018
1024
} else {
1019
1025
resp . text ( ) . then ( ( respText ) => {
1020
1026
me . responseText = respText ;
@@ -1071,7 +1077,11 @@ export default class ApiRequest extends LitElement {
1071
1077
document . body . appendChild ( a ) ;
1072
1078
a . style = 'display: none' ;
1073
1079
a . href = this . responseBlobUrl ;
1074
- a . download = this . respContentDisposition ;
1080
+ if ( this . responseBlobType === 'show' ) {
1081
+ a . target = '_blank' ;
1082
+ } else {
1083
+ a . download = this . respContentDisposition ;
1084
+ }
1075
1085
a . click ( ) ;
1076
1086
a . remove ( ) ;
1077
1087
}
@@ -1084,6 +1094,7 @@ export default class ApiRequest extends LitElement {
1084
1094
this . responseStatus = 'success' ;
1085
1095
this . responseMessage = '' ;
1086
1096
this . responseIsBlob = false ;
1097
+ this . responseBlobType = '' ;
1087
1098
this . respContentDisposition = '' ;
1088
1099
if ( this . responseBlobUrl ) {
1089
1100
URL . revokeObjectURL ( this . responseBlobUrl ) ;
0 commit comments