2012-04-06 9 views
17
は、次のような

変更名

<a href="downloadable.txt">Download</a> 

は、クライアント側(HTMLやJavaScript)[名前を付けて保存する前にファイルの名前を変更する方法はあります

'ダイアログ?

+0

が重複する可能性を使用して、古典的なJavaScriptで同じことを達成することができ (Imはここでは一例でangularjsを使用して)eligreyによって書かれたFilesaver.jsスクリプトを使用することができますhtml download](http://stackoverflow.com/questions/10037273/changing-the-name-of-an-html-download) –

答えて

5

いいえ、これはクライアント側(HTMLまたはJavaScript)からは変更できません。サーバーから変更する必要があります。一つの方法は、コンテンツディスポジションHTTPレスポンスヘッダを設定するサーバーサイドスクリプトを使用することです:

Content-Disposition: attachment; filename=somecustomname.txt 
+0

クライアント側ではありませんが、これが私が望む効果です。ありがとう。 – Intra

52

HTML5を使用すると、ファイルの名前を変更することができますa[download]属性を提供します。この例ではlink.txtがダウンロードされ、名前はsomething.txtに変更されます。

​<a download="something.txt" href="link.txt">asdf</a>​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

これは同じオリジンURL(つまり、異なるドメイン間ではない)でのみ機能することに注意してください。

+0

Chromeだけでなく、Firefox 28.0でも動作します。 互換性リストはこちらからご覧いただけます。http://caniuse.com/download – Bonswouar

+0

Firefoxでは、バージョン20.0以降で動作しますが、同じドメインのファイルについてのみ動作します(https://developer.mozilla.org/en-USを参照)。/docs/Web/HTML/Element/a#attr-download) – deterb

+0

http://caniuse.com/#feat=download現在、OperaおよびAndroidブラウザでサポートされています。 –

2

あなたはXMLHttpRequestオブジェクトに[の名前を変更するの

//In your html code , add these : -> 
<script src="https://rawgit.com/eligrey/FileSaver.js/master/FileSaver.js" type="text/javascript"></script> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-animate.js"></script> 
//In your Javascript:- 

$http({ 
     url: "url where the file is located", 
     method: "GET", 
     responseType: "blob" 
    }).then(function (response) { 

saveAs(response.data,"newfilename.extension"); 

})