ホームページ ウェブフロントエンド フロントエンドQ&A JavaScriptでダウンロード機能を実装する方法

JavaScriptでダウンロード機能を実装する方法

Feb 10, 2023 am 09:18 AM
javascript ダウンロード

JavaScript でダウンロード機能を実装する方法: 1. a タグを通じてダウンロード; 2. "window.open" メソッドを通じてダウンロード; 3. "location.href" メソッドを通じてダウンロード; 4. を通じてファイル転送 BLOB オブジェクトはダウンロード機能を実装します。

JavaScriptでダウンロード機能を実装する方法

このチュートリアルの動作環境: Windows 10 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript でダウンロード機能を実装するにはどうすればよいですか?

#js はファイルダウンロード機能を実装します

1.タグのダウンロード

<body>
<button onClick="download()">a标签下载</button>
<script>
function download(url = &#39;http:www.xxx.com/download?name=file.pdf&#39;, fileName = &#39;未知文件&#39;) {
      const a = document.createElement(&#39;a&#39;);
      a.style.display = &#39;none&#39;;
      a.setAttribute(&#39;target&#39;, &#39;_blank&#39;);
      /*
       * download的属性是HTML5新增的属性
       * href属性的地址必须是非跨域的地址,如果引用的是第三方的网站或者说是前后端分离的项目(调用后台的接口),这时download就会不起作用。
       * 此时,如果是下载浏览器无法解析的文件,例如.exe,.xlsx..那么浏览器会自动下载,但是如果使用浏览器可以解析的文件,比如.txt,.png,.pdf....浏览器就会采取预览模式
       * 所以,对于.txt,.png,.pdf等的预览功能我们就可以直接不设置download属性(前提是后端响应头的Content-Type: application/octet-stream,如果为application/pdf浏览器则会判断文件为 pdf ,自动执行预览的策略)
       */
      fileName && a.setAttribute(&#39;download&#39;, fileName);
      a.href = url;
      document.body.appendChild(a);
      a.click();
      document.body.removeChild(a);
    }
</script>
</body>
ログイン後にコピー

利点:

  • txt、png、pdf、exe、xlsx およびその他の種類のファイルを直接ダウンロードできます

欠点:

  • タグで実行できるのは、 get request を実行するため、URL には長さ制限があります

  • ダウンロードの進行状況を取得できません

  • クロスドメイン制限

  • 認証操作のヘッダーにトークンを含めることができません

  • インターフェイスが成功したかどうかを判断できません

  • IE の互換性問題点

2. ダウンロードウィンドウ.open

<body>
  <button onclick="download(&#39;http://www.xxx.com/download?name=file.pdf&#39;)">window.open下载</button>
  <script>
    function download(url) {
      window.open(url, &#39;_self&#39;);
      /**
       *  _blank:在新窗口显示目标网页
       *  _self:在当前窗口显示目标网页
       *  _top:框架网页中在上部窗口中显示目标网页
      /**
    }
  </script>
</body>
ログイン後にコピー

利点:

  • シンプルで便利

欠点:

  • URL の長さ制限の問題が発生します

  • ##URL エンコードの問題に注意する必要があります
  • ダウンロードの進行状況を取得できません
  • 認証操作のヘッダーにトークンを含めることができません
  • インターフェイスが成功したかどうかを判断できません
  • #ブラウザで直接プレビューできるファイル タイプを直接ダウンロードできません (txt、png、pdf が直接プレビューされます)
  • 3. ダウンロード場所.href
  • <body>
      <button onclick="download(&#39;http://www.xxx.com/download?name=file.pdf&#39;)">location.href下载
      </button>
      <script>
        function download(url) {
          window.location.href = url;
        }
      </script>
    </body>
    ログイン後にコピー
利点

シンプル、便利、直接的
  • 大きなファイル(G 以上)をダウンロードできる
  • #欠点

#URL の長さ制限の問題が発生する

    #URL エンコードの問題に注意する必要があります
  • ダウンロードの進行状況を取得できません
  • ヘッダーにトークンを含めることができません認証操作
  • ##ブラウザで直接プレビューできるファイル タイプは直接ダウンロードできません (txt、png、pdf は直接プレビューされます)
  • インターフェイスが正常に返されたかどうかを判断できません
  • #3. ファイル転送 BLOB オブジェクトのダウンロード

     <button onclick="download()">文件流转blob对象下载</button>
     <script>
     download() {
     axios({
     url: &#39;http://www.xxx.com/download&#39;,
     method: &#39;get&#39;,
     responseType: &#39;blob&#39;,
     }).then(res => {
     const fileName = res.headers.content-disposition.split(&#39;;&#39;)[1].split(&#39;filename=&#39;)[1];
     const filestream = res.data;  // 返回的文件流
     // {type: &#39;application/vnd.ms-excel&#39;}指定对应文件类型为.XLS (.XLS的缩写就为application/vnd.ms-excel)
     const blob = new Blob([filestream], {type: &#39;application/vnd.ms-excel&#39;});
     const a = document.createElement(&#39;a&#39;);
     const href = window.URL.createObjectURL(blob); // 创建下载连接
        a.href = href;
        a.download = decodeURL(fileName );
        document.body.appendChild(a);
            a.click();
            document.body.removeChild(a); // 下载完移除元素
            window.URL.revokeObjectURL(href); // 释放掉blob对象
     })
     }
     </script>
    ログイン後にコピー
    利点:

  • 次のことができます。 txt、png、pdf およびその他のタイプのファイルをダウンロード

    #認証操作のためにヘッダーにトークンを含めることができます

      #ファイルを取得できますダウンロードの進行状況
    • インターフェイスが正常に返されたかどうかを判断できます
    • 欠点:
    • 互換性の問題、IE10 以下では利用できません。Safari ブラウザに注意してください。公式 Web サイトには、Safari には application/octet-stream タイプの BLOB に重大な問題があると記載されています。
    • バックエンドを返します。すべてのファイル ストリームが取得された後にのみダウンロードされます

      推奨学習: 「
    • JavaScript ビデオ チュートリアル

    以上がJavaScriptでダウンロード機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

マグネットリンクの使い方 マグネットリンクの使い方 Feb 18, 2024 am 10:02 AM

マグネット リンクは、リソースをダウンロードするためのリンク方法であり、従来のダウンロード方法よりも便利で効率的です。マグネット リンクを使用すると、中間サーバーに依存せずに、ピアツーピア方式でリソースをダウンロードできます。この記事ではマグネットリンクの使い方と注意点を紹介します。 1. マグネット リンクとは? マグネット リンクは、P2P (Peer-to-Peer) プロトコルに基づくダウンロード方式です。ユーザーはマグネット リンクを通じてリソースの発行者に直接接続し、リソースの共有とダウンロードを完了できます。従来のダウンロード方法と比較して、磁気

紅果短編ドラマのエピソードをダウンロードする方法 紅果短編ドラマのエピソードをダウンロードする方法 Mar 11, 2024 pm 09:16 PM

紅国短編劇は短編劇を鑑賞するためのプラットフォームであるだけでなく、小説やその他の刺激的なコンテンツを含む豊富なコンテンツの宝庫でもあります。これは間違いなく、読書が好きな多くのユーザーにとって大きな驚きです。ただし、多くのユーザーは、Hongguo Short Play でこれらの小説をダウンロードして視聴する方法をまだ知りません。以下では、この Web サイトの編集者が詳細なダウンロード手順を提供します。必要なすべての人に役立つことを願っています。パートナー。紅果寸劇をダウンロードして視聴するにはどうすればよいですか? 答え: [紅果寸劇] - [オーディオブック] - [記事] - [ダウンロード]。具体的な手順: 1. まず、Hongguo Short Drama ソフトウェアを開き、ホームページに入り、ページ上部の [本を聴く] ボタンをクリックします; 2. 次に、小説ページで多くの記事コンテンツが表示されます。

壁紙エンジンで別のアカウントにログインした後、他の人の壁紙をダウンロードした場合はどうすればよいですか? 壁紙エンジンで別のアカウントにログインした後、他の人の壁紙をダウンロードした場合はどうすればよいですか? Mar 19, 2024 pm 02:00 PM

自分のコンピュータで他人の Steam アカウントにログインし、その他人のアカウントに壁紙ソフトウェアがインストールされている場合、自分のアカウントに切り替えた後、Steam は他人のアカウントに登録されている壁紙を自動的にダウンロードします。 Steam クラウドの同期をオフにします。別のアカウントにログインした後に、wallpaperengine が他の人の壁紙をダウンロードした場合の対処方法 1. 自分の steam アカウントにログインし、設定でクラウド同期を見つけて、steam クラウド同期をオフにします。 2. 以前にログインしたことのある他の人の Steam アカウントにログインし、壁紙クリエイティブ ワークショップを開き、サブスクリプション コンテンツを見つけて、すべてのサブスクリプションをキャンセルします。 (将来壁紙が見つからない場合は、まず壁紙を収集してからサブスクリプションをキャンセルできます) 3. 自分の Steam に戻ります。

115://で始まるリンクをダウンロードするにはどうすればよいですか?ダウンロード方法の紹介 115://で始まるリンクをダウンロードするにはどうすればよいですか?ダウンロード方法の紹介 Mar 14, 2024 am 11:58 AM

最近、多くのユーザーから、115:// で始まるリンクをダウンロードするにはどうすればよいかという質問が編集者に寄せられました。 115:// で始まるリンクをダウンロードしたい場合は、115 ブラウザを使用する必要があります。115 ブラウザをダウンロードしたら、以下のエディタによって作成されたダウンロード チュートリアルを見てみましょう。 115:// で始まるリンクをダウンロードする方法の紹介 1. 115.com にログインし、115 ブラウザをダウンロードしてインストールします。 2. 115 ブラウザのアドレス バーに chrome://extensions/ と入力し、拡張機能センターに入り、Tampermonkey を検索して、対応するプラグインをインストールします。 3. 115 ブラウザのアドレス バーに「Grease Monkey Script: https://greasyfork.org/en/」と入力します。

動画アカウントから動画をダウンロードする方法「必見:動画アカウントから動画を保存する簡単な方法」 動画アカウントから動画をダウンロードする方法「必見:動画アカウントから動画を保存する簡単な方法」 Feb 06, 2024 pm 06:42 PM

現在、ビデオ アカウントをプレイし始めている人が増えています。ビデオ アカウントは、ビデオ アカウントを通じて日常生活を共有し、お金を稼ぐことができる短いビデオ プラットフォームでもあります。最近、WeChat ビデオ アカウントからのビデオがダウンロードされない理由を尋ねる友人を見かけました。Yang Shuaikang が試しに行ってみましたが、確かにダウンロード ボタンはなく、他の方法でビデオを抽出するしかありませんでした。今日、Yang Shuaikang は共有します愚かなメソッドを持っています、見に来てください。 WeChat ビデオ アカウントからビデオを抽出する方法 1. WeChat のコンピューター バージョンを開き、左側にある [ビデオ アカウント] を見つけます; 2. 検索を通じてダウンロードしたいビデオを見つけます; 3. 最後に、画面録画ツールを使用して、録画したビデオのサイズを指定して、最後に録画して編集するだけです。 PS: 1. この方法はコンピュータ版でのみ記録でき、携帯電話では記録できません。

123クラウドディスクからファイルをダウンロードする方法 123クラウドディスクからファイルをダウンロードする方法 Feb 23, 2024 pm 08:58 PM

123クラウドディスクは多くのファイルをダウンロードできますが、具体的にはどのようにファイルをダウンロードするのですか?ユーザーは、ダウンロードしたいファイルを選択してクリックしてダウンロードするか、ファイルを右クリックしてダウンロードを選択できます。この 123 クラウド ディスクからファイルをダウンロードする方法の紹介では、具体的なダウンロード方法を説明しますので、よく知らない友達は急いで見てください。 123 クラウド ディスクからファイルをダウンロードする方法 1. まずソフトウェアを開き、ダウンロードする必要があるソフトウェアをクリックすると、ダウンロード ボタンが表示されます。 2. または、ソフトウェアを右クリックすると、リストにダウンロード ボタンが表示されます。 3. ダウンロードウィンドウが表示されるので、ダウンロードする場所を選択します。 4. 選択した後、「ダウンロード」をクリックしてこれらのファイルをダウンロードします。

スーパーピープル ゲームのダウンロードとインストール方法の紹介 スーパーピープル ゲームのダウンロードとインストール方法の紹介 Mar 30, 2024 pm 04:01 PM

superpeople ゲームは、steam クライアントを通じてダウンロードできます。このゲームのサイズは約 28G です。ダウンロードとインストールには通常 1 時間半かかります。ここでは、具体的なダウンロードとインストールのチュートリアルを紹介します。グローバルクローズドテストへの新しい申請方法 1) Steamストア(Steamクライアントダウンロード)で「SUPERPEOPLE」を検索 2) 「SUPERPEOPLE」ストアページ下部にある「SUPERPEOPLEクローズドテストへのアクセスをリクエスト」をクリック 3) request accessボタン、Steamライブラリで「SUPERPEOPLECBT」ゲームが確認できます 4)「SUPERPEOPLECBT」内のインストールボタンをクリックしてダウンロード

Quarkネットワークディスクをローカルにダウンロードするにはどうすればよいですか? Quark Network Diskからダウンロードしたファイルをローカルコンピュータに保存する方法 Quarkネットワークディスクをローカルにダウンロードするにはどうすればよいですか? Quark Network Diskからダウンロードしたファイルをローカルコンピュータに保存する方法 Mar 13, 2024 pm 08:31 PM

多くのユーザーはQuark Network Diskを使用するときにファイルをダウンロードする必要がありますが、ファイルをローカルに保存したいので、どのように設定すればよいでしょうか?このサイトでは、Quark Network Diskからダウンロードしたファイルをローカルコンピュータに保存する方法を詳しくユーザーに紹介します。 Quarkネットワークディスクからダウンロードしたファイルをローカルコンピュータに保存する方法 1. Quarkを開き、アカウントにログインし、リストアイコンをクリックします。 2. アイコンをクリックした後、ネットワークディスクを選択します。 3. Quark Network Diskに入ったら、「My Files」をクリックします。 4. [マイ ファイル] に入ったら、ダウンロードするファイルを選択し、三点アイコンをクリックします。 5. ダウンロードしたいファイルにチェックを入れ、「ダウンロード」をクリックします。

See all articles