首頁 >web前端 >js教程 >如何使用 jQuery 和 JavaScript 以 Blob 形式檢索映像?

如何使用 jQuery 和 JavaScript 以 Blob 形式檢索映像?

DDD
DDD原創
2024-11-10 21:17:02886瀏覽

How to Retrieve Images as Blobs Using jQuery and JavaScript?

使用 jQuery 將影像作為 Blob 檢索

在上一個問題中,您嘗試在 POST 請求中提交影像資料。您目前的方法涉及使用 jQuery.ajax 檢索圖像,但由於資料類型不匹配,您遇到了損壞的圖像。

有限的 jQuery 資料類型

jQuery.ajax支援多種資料類型,但不明確包含影像。因此,單獨使用 jQuery 將映像作為 blob 存取是不可行的。

原生 XMLHttpRequest 解決方案

要解決此問題,您可以使用原生 XMLHttpRequest。以下是一個範例:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var img = document.getElementById('img');
        var url = window.URL || window.webkitURL;
        img.src = url.createObjectURL(this.response);
    }
}
xhr.open('GET', 'http://jsfiddle.net/img/logo.png');
xhr.responseType = 'blob';
xhr.send();

此腳本將建立一個 XMLHttpRequest 對象,將其配置為接收 Blob 回應,並使用 Blob URL 屬性在 HTML 元素中顯示圖像。

jQuery 3 解

在jQuery 3 中,提供了一種新方法:

jQuery.ajax({
        url:'https://images.unsplash.com/photo-1465101108990-e5eac17cf76d?ixlib=rb-0.3.5&q=85&fm=jpg&crop=entropy&cs=srgb&ixid=eyJhcHBfaWQiOjE0NTg5fQ%3D%3D&s=471ae675a6140db97fea32b55781479e',
        cache:false,
        xhr:function(){// Seems like the only way to get access to the xhr object
            var xhr = new XMLHttpRequest();
            xhr.responseType= 'blob'
            return xhr;
        },
        success: function(data){
            var img = document.getElementById('img');
            var url = window.URL || window.webkitURL;
            img.src = url.createObjectURL(data);
        },
        error:function(){
            
        }
    });

在此範例中,xhr 函數用於配置XMLHttpRequest 對象,並且回應類型明確設定為“blob”。這允許 jQuery 以 blob 形式檢索圖像並將其顯示在圖像元素中。

以上是如何使用 jQuery 和 JavaScript 以 Blob 形式檢索映像?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn