[解決済み] blob URL を通常の URL に変換する
質問
私のページでは、次のようなURLが生成されます。
"blob:http%3A//localhost%3A8383/568233a1-8b13-48b3-84d5-cca045ae384f"
これを通常のアドレスに変換するにはどうすればよいですか?
として使っているのですが
<img>
's
src
属性があります。
どのように解決するのですか?
JavaScriptから作成されたURL
Blob
から作成されたURLは、通常のURLに変換することができません。
A
blob:
URLは、サーバーに存在するデータを参照するのではなく、現在のページについて、あなたのブラウザが現在メモリ内に持っているデータを参照します。それは他のページでは利用できず、他のブラウザでは利用できず、他のコンピュータからは利用できません。
そのため、一般的には
Blob
URL を通常の URL に変換することは、一般的には意味がありません。もし普通の URL が欲しいのであれば、ブラウザからデータをサーバーに送り、サーバーが普通のファイルのように利用できるようにする必要があります。
を変換することは可能です。
blob:
の URL を
data:
の URL に変換することができます(少なくとも Chrome では)。AJAX リクエストを使用して、データを
blob:
URL からデータを取得することができます (ただし、実際にはブラウザのメモリからデータを取り出しているだけで、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 とは異なるもので、サイズが大きくなる可能性があります。しかし、共有できるという点では通常の URL のように機能します。
関連
-
[解決済み] ブラウザによって異なるURLの最大長とは?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptでURLをエンコードする?
-
[解決済み] セレクタの子を取得する方法は?
-
[解決済み] jQueryで現在のURLを取得する?
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】BLOB URLとは何ですか、なぜ使われるのですか?
-
[解決済み] オブジェクトURLからファイルやブロブを取得する方法は?
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] ECMAScriptとは?
-
[解決済み] 変異を伴わないオブジェクトからの値の削除
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?