ラベル - ドメイン間 - ダウンロード

理由:絵に保存されているサーバーのアドレスがで変更されている
、それが直接プレビューを開きます。ダウンロードした画像操作を使用していないラベルは:現象
:解決するために
、具体的なコメントを見て、2つのメソッドをカプセル化し、最初の画像をして、ダウンロード中にBase64形式に変換しました

ページのコード
<ボタン@クリック= downImg( ' ://xxx/xxx/xxx.png HTTPS')> ダウンロード</ button>の
downImg(URL){
constのIMG =のdocument.createElement( 'IMG')
img.crossOrigin = 「匿名」//効果:クロスドメイン。ここでは、書き込みをしないようにするために、次の点に注意しなければならない、またはキャンバス汚染エラー報告します
//すなわち:キャッチされない例外:DOMException:「をHTMLCanvasElement」ON「toDataURL」の実行に失敗しました:。汚染されたBEのカンバスをエクスポートできない場合があり
Img.srcのURL =
IMGを。 =のonload()=> {
検索方法BASE64パッケージオン//
CONST = dataBase64 getBase64Image(IMG)を
タグのダウンロード処理を行う//
clickDown(dataBase64、 '二次元コード')
}
}


========================以下の包装方法
/ **
*
*ラベルに配置され、ダウンロード
* @paramの
*最初のパラメータがダウンロードされているアドレス
* 2番目のパラメータはデフォルトの空通過しない、ダウンロード後のファイルの名前である
* @returnダウンロード
*
*
* * /
エクスポート機能のclickDown(、名前をURLを=「」){
constのリンク=のdocument.createElement(「A」)
URL = link.hrefの
link.download名=
document.body.appendChild(リンク)
link.click()
document.body.removeChild(リンク)
}

/ **
*
*将图片转为base64で格式
* @param图片对象
* @return base64で字符串
*
* * /
エクスポート機能のgetBase64Image(IMG){
場合(!IMG)の戻り
ましょうキャンバス=のdocument.createElement( 'キャンバス')
canvas.width = img.width
canvas.height = img.height
( '2D')CTX = canvas.getContextを聞かせて
ctx.drawImage(IMG、0、0、img.width、img.height)
EXT = img.srcをしましょう。ストリング(img.src.lastIndexOf( ' ')+ 1).toLowerCase()
canvas.toDataURLを返す('画像/' + EXT)
}

おすすめ

転載: www.cnblogs.com/victory820/p/10936240.html