2016-11-02 6 views
3

私はどこでも答えを見つけることができません、うまくいけば誰かが助けることができます。 角2 - クリックイベントのファイルをダウンロード

私はAngular2クリックテーブルのセル内のテンプレートで定義されたイベント、持っている:typescriptですコンポーネントで

<td (click)="click2Download()">fileName.txt</td> 

を、私は自動的にダウンロードを開始する方法click2Download()を定義する助けが必要fileName.txtをクライアントのブラウザに送信します。注:ファイルは同じドメインにあります。例:

http://example.com/fileName.txt 

Angular2でこれを行う方法はありますか?

+0

[Angular 2のPDFをAPIからダウンロードして表示](http://stackoverflow.com/questions/35368633/angular-2-download-pdf-from-api-and-display-it-インビュー) – Fiddles

答えて

3

お試しください:window.location.href = '...';?ファイルのダウンロードを強制的に

あなたは、HTML属性を使用する必要があります。<a target="_self" href="somefile.txt" download="somefile.txt">

+0

お手数をおかけしていただきありがとうございます。私はちょうどそれを試みたが、それはzipファイルのためにうまくいきますが、テキストファイルのためにはうまくいきません。ファイルをダウンロードする代わりに、ユーザーをテキストファイルのURLにリダイレクトします。 – jjj

+0

強制的にダウンロードするには、HTMLダウンロード属性(http://www.w3schools.com/tags/att_a_download.asp)を使用するか、ヘッダーを.htaccessファイルで変更して強制的にダウンロードします。 – spa900

+1

はい、それは動作しますが、私はダウンロードを開始する前に起こっているいくつかの他の処理(ファイル名などの取得)があるので、これをtypescriptメソッドで行う必要があります。 – jjj

-2

理由だけではなく、アンカータグを使わないのでしょうか?

<td><a href="http://example.com/fileName.zip">fileName.zip</a></td> 

あなたが角度アプリであるために何もする必要はありません。

+0

申し訳ありませんが、私の説明は修正されました。私はzipファイルではなくtxtファイルのダウンロードが必要です。そして、これはダウンロードを開始しません、単にブラウザウィンドウ内でテキストを開き、ユーザーをアプリケーションから遠ざけ、ダウンロードパスを明らかにします(私はどちらかといえば欲しくない)。 – jjj

+0

次にダウンロード属性を使用してください​​fileName.zip

+0

それはzipファイルではなくtxtファイルをダウンロードします。 – jjj

関連する問題