मेरा पेज इस तरह से एक URL बनाता है: "blob:http%3A//localhost%3A8383/568233a1-8b13-48b3-84d5-cca045ae384f"
मैं इसे एक सामान्य पते में कैसे बदल सकता हूं?
मैं इसे एक <img>
's src
विशेषता के रूप में उपयोग कर रहा हूँ ।
मेरा पेज इस तरह से एक URL बनाता है: "blob:http%3A//localhost%3A8383/568233a1-8b13-48b3-84d5-cca045ae384f"
मैं इसे एक सामान्य पते में कैसे बदल सकता हूं?
मैं इसे एक <img>
's src
विशेषता के रूप में उपयोग कर रहा हूँ ।
जवाबों:
एक URL जो जावास्क्रिप्ट से बनाया गया था, उसे Blob
"सामान्य" URL में नहीं बदला जा सकता है।
एक blob:
URL सर्वर पर मौजूद डेटा को संदर्भित नहीं करता है, यह उस डेटा को संदर्भित करता है जो आपके ब्राउज़र में वर्तमान पृष्ठ के लिए स्मृति में है। यह अन्य पृष्ठों पर उपलब्ध नहीं होगा, यह अन्य ब्राउज़रों में उपलब्ध नहीं होगा, और यह अन्य कंप्यूटरों से उपलब्ध नहीं होगा।
इसलिए इसका मतलब यह नहीं है कि सामान्य तौर पर, Blob
URL को "सामान्य" URL में बदलना है । यदि आप एक साधारण यूआरएल चाहते हैं, तो आपको ब्राउज़र से सर्वर पर डेटा भेजना होगा और सर्वर को एक साधारण फ़ाइल की तरह उपलब्ध कराना होगा।
कम से कम क्रोम में blob:
URL को URL में बदलना संभव है data:
। आप blob:
URL से डेटा प्राप्त करने के लिए एक AJAX अनुरोध का उपयोग कर सकते हैं (भले ही यह वास्तव में आपके ब्राउज़र की मेमोरी से बाहर खींच रहा हो, HTTP अनुरोध नहीं बना रहा है)।
यहाँ एक उदाहरण है:
var blob = new Blob(["Hello, world!"], { type: 'text/plain' });
var blobUrl = URL.createObjectURL(blob);
var xhr = new XMLHttpRequest;
xhr.responseType = 'blob';
xhr.onload = function() {
var recoveredBlob = xhr.response;
var reader = new FileReader;
reader.onload = function() {
var blobAsDataUrl = reader.result;
window.location = blobAsDataUrl;
};
reader.readAsDataURL(recoveredBlob);
};
xhr.open('GET', blobUrl);
xhr.send();
data:
URL संभवत: "सामान्य" से आपके मतलब के नहीं हैं और समस्यात्मक रूप से बड़े हो सकते हैं। हालाँकि वे सामान्य URL की तरह काम करते हैं, जिसमें उन्हें साझा किया जा सकता है; वे वर्तमान ब्राउज़र या सत्र के लिए विशिष्ट नहीं हैं।
Not allowed to navigate top frame to data URL: data:text/plain;base64,...
त्रुटि मिलती है । मुझे डेटा मिलता है, लेकिन इसकी window.location
अनुमति नहीं है ...
बूँद url से डेटा url बनाने का एक और तरीका कैनवास का उपयोग करना हो सकता है।
var canvas = document.createElement("canvas")
var context = canvas.getContext("2d")
context.drawImage(img, 0, 0) // i assume that img.src is your blob url
var dataurl = canvas.toDataURL("your prefer type", your prefer quality)
जैसा कि मैंने mdn में देखा है, कैनवस .toDataURL को ब्राउज़र द्वारा अच्छी तरह से समर्थित किया गया है। (छोड़कर <<9, हमेशा यानी <9)
उन लोगों के लिए जो एक बूँद url वीडियो / ऑडियो डाउनलोड करने का तरीका खोज रहे हैं, इस जवाब ने मेरे लिए काम किया । संक्षेप में, आपको Chrome -> नेटवर्क टैब के माध्यम से वांछित वेब पेज पर एक * .m3u8 फ़ाइल ढूंढनी होगी और इसे VLC प्लेयर में पेस्ट करना होगा ।
एक अन्य गाइड आपको दिखाता है कि वीएलसी प्लेयर के साथ स्ट्रीम को कैसे बचाया जाए ।
जैसा कि पिछले उत्तर में कहा गया है, इसे वापस url में डीकोड करने का कोई तरीका नहीं है, यहां तक कि जब आप इसे क्रोम devtools पैनल से देखने का प्रयास करते हैं, तो भी url को बूँद के रूप में एन्कोड किया जा सकता है।
हालांकि, डेटा प्राप्त करना संभव है, डेटा प्राप्त करने का एक और तरीका यह है कि इसे एक लंगर में डाल दिया जाए और इसे सीधे डाउनलोड करें।
<a href="blob:http://example.com/xxxx-xxxx-xxxx-xxxx" download>download</a>
इस पेज को बूँद url वाले पेज पर डालें और बटन पर क्लिक करें, आपको सामग्री मिल जाएगी।
एक और तरीका है प्रॉक्सी सर्वर के माध्यम से अजाक्स कॉल को इंटरसेप्ट करना, फिर आप सही छवि url देख सकते हैं।
localhost
लिंक है। इसके बजाय इसकी सार्वजनिक लिंक का पता लगाएं। (जो सीडीएन आप उपयोग कर रहे हैं?)