আমার পৃষ্ঠাটি এর মতো একটি ইউআরএল উত্পন্ন করে: "blob:http%3A//localhost%3A8383/568233a1-8b13-48b3-84d5-cca045ae384f"
আমি কীভাবে এটি একটি সাধারণ ঠিকানায় রূপান্তর করতে পারি?
আমি একজন যেমন ব্যবহার করছি <img>
এর src
অ্যাট্রিবিউট।
আমার পৃষ্ঠাটি এর মতো একটি ইউআরএল উত্পন্ন করে: "blob:http%3A//localhost%3A8383/568233a1-8b13-48b3-84d5-cca045ae384f"
আমি কীভাবে এটি একটি সাধারণ ঠিকানায় রূপান্তর করতে পারি?
আমি একজন যেমন ব্যবহার করছি <img>
এর src
অ্যাট্রিবিউট।
উত্তর:
একটি জাভাস্ক্রিপ্ট থেকে তৈরি করা একটি Blob
URL "নরমাল" ইউআরএলে রূপান্তর করা যাবে না।
একটি blob:
ইউআরএল সার্ভারে বিদ্যমান ডেটাগুলিকে উল্লেখ করে না, এটি বর্তমান পৃষ্ঠার জন্য বর্তমানে আপনার ব্রাউজারের মেমরিতে থাকা ডেটা বোঝায়। এটি অন্যান্য পৃষ্ঠাগুলিতে উপলভ্য হবে না, এটি অন্যান্য ব্রাউজারগুলিতে উপলব্ধ হবে না এবং এটি অন্যান্য কম্পিউটার থেকে পাওয়া যাবে না।
সুতরাং কোনও ইউআরএলকে Blob
একটি "সাধারণ" ইউআরএলে রূপান্তর করার জন্য, সাধারণভাবে এটি বোঝা যায় না । আপনি যদি একটি সাধারণ ইউআরএল চান, আপনাকে ব্রাউজার থেকে ডেটা কোনও সার্ভারে প্রেরণ করতে হবে এবং সার্ভারটিকে এটি একটি সাধারণ ফাইলের মতো উপলব্ধ করতে হবে।
কমপক্ষে ক্রোমে blob:
কোনও data:
ইউআরএলকে ইউআরএল রূপান্তর করা সম্ভব । আপনি blob:
ইউআরএল থেকে ডেটা "আনার" জন্য একটি এজেএক্স অনুরোধ ব্যবহার করতে পারেন (যদিও এটি সত্যই এটি আপনার ব্রাউজারের স্মৃতি থেকে সরিয়ে ফেলছে, কোনও 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 এর মতো কাজ করে যাতে এগুলি ভাগ করা যায়; তারা বর্তমান ব্রাউজার বা সেশনের সাথে নির্দিষ্ট নয়।
Not allowed to navigate top frame to data URL: data:text/plain;base64,...
ত্রুটি পেয়েছি । আমি ডেটা পেয়েছি, তবে window.location
এটির অনুমতি নেই ...
ব্লব ইউআরএল থেকে ডেটা ইউআরএল তৈরি করার আর একটি উপায় ক্যানভাস ব্যবহার করা হতে পারে।
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)
যেমনটি আমি এমডএন-তে দেখেছি, ক্যানভাস.টোডাটাআরএল ব্রাউজারগুলি সমর্থন করে। (অর্থাত্ <9, সর্বদা অর্থাত্ <9) ব্যতীত
যারা এখানে এসেছেন কোনও ব্লব ইউআরএল ভিডিও / অডিও ডাউনলোড করার উপায় খুঁজছেন তাদের জন্য এই উত্তরটি আমার পক্ষে কাজ করেছে। সংক্ষেপে, আপনার Chrome- > নেটওয়ার্ক ট্যাবের মাধ্যমে কাঙ্ক্ষিত ওয়েব পৃষ্ঠায় একটি * .m3u8 ফাইল সন্ধান করতে হবে এবং এটি একটি ভিএলসি প্লেয়ারে পেস্ট করতে হবে ।
অন্য গাইড আপনাকে ভিএলসি প্লেয়ারের সাহায্যে কীভাবে একটি স্ট্রিম সংরক্ষণ করবেন তা দেখায় ।
পূর্ববর্তী উত্তরটি যেমন বলেছে, এটি ইউআরএলটিকে আবার ডিকোড করার কোনও উপায় নেই, আপনি যখন ক্রোম ডিভলটুল প্যানেল থেকে দেখার চেষ্টা করেন তখনও ইউআরএলটি ব্লব হিসাবে এনকোডড থাকতে পারে।
যাইহোক, ডেটা পাওয়া সম্ভব, তথ্য প্রাপ্তির অন্য উপায় হ'ল এটি একটি অ্যাঙ্কারে রেখে সরাসরি ডাউনলোড করা।
<a href="blob:http://example.com/xxxx-xxxx-xxxx-xxxx" download>download</a>
এটিতে ব্লব ইউআরএল থাকা পৃষ্ঠায় প্রবেশ করুন এবং বোতামটি ক্লিক করুন, আপনি সামগ্রীটি পাবেন।
আরেকটি উপায় হ'ল একটি প্রক্সি সার্ভারের মাধ্যমে অজ্যাক্স কলটি বন্ধ করা, তবে আপনি প্রকৃত চিত্র url দেখতে পেতেন।
Failed - Network error
লিনাক্সে সর্বদা Chrome 83.0.4103.97 এ আসি।)
localhost
লিঙ্ক। পরিবর্তে এর সর্বজনীন লিঙ্কটি সন্ধান করুন। (আপনি কোন সিডিএন ব্যবহার করছেন?)