2017-03-26 17 views
8

Tôi có webApi trả lại cho tôi một tệp blob mà tôi phải hiển thị. làm cách nào để biết loại blob mà tôi nhận được? Có thể là bất kỳ thứ gì, pdf, doc, jpeg, v.v.

$http({ method: 'GET', url: (itemsUrl), responseType: 'arraybuffer' }).then(function mySucces(res) { 
    var byteArray = res.data; 
    byteArray = new Uint8Array(byteArray); 
    var file = new Blob([byteArray], { type: '??????' }); 
    var fileURL = URL.createObjectURL(file); 
    window.open(fileURL); 
}); 

hoặc, làm cách nào để mở blob trong cửa sổ mới mà không biết loại tệp?

Trả lời

10

Sử dụng response.headers() để có được những kiểu nội dung:

var config = { responseType: 'blob' }; 

$http.get(itemsUrl, config).then(function onSuccess(response) { 
    var blob = response.data; 
    var contentType = response.headers("content-type"); 
    var fileURL = URL.createObjectURL(blob); 
    window.open(fileURL); 
}); 

Xem xét sử dụng 'blob' như responseType.

Để biết thêm thông tin, hãy xem MDN XHR responseType.

Các vấn đề liên quan