2016-09-06 16 views
1

私はこれは、ファイル名が元のURLに基​​づいていることを除いて、完璧に動作HTMLの 'download'属性を使用してダウンロードファイル名を入力することはできますか?

folloowingコードを使用して、.csvファイルとしてデータをダウンロードするには、ファイル名を指定する
$(this).attr({ 
    'download': fileName, 
    'href': csvData, 
    'target': '_blank' 
    }); 

download属性を使用していますデータが取得されるので、非常に長く複雑になる可能性があります。

ユーザーにファイル名を「プロンプト」することは可能ですか?IOW、ダウンロードリンクをクリックするとWindowsエクスプローラ(またはOS相当)に「Save As」プロンプトが表示され、デフォルト値はfileNameとなりますか?

FWIW、fileNameの先頭に疑問符のような「無効な」文字を使用してみましたが、役に立たなかった。私はtarget属性についても他の値を試しましたが、そこにはサイコロもありませんでした。私が見逃している明白なものがある場合

...もちろん、私は、ファイル名を表示するように私のコードの中にプロンプ​​トを追加することができますし、ユーザーが名前を指定することができますが、

EDIT

例として

、それを明確にする、ここでは画像への2つの<A>のリンクとサンプルWebページだ - 1は、画像を表示し、1はそれをダウンロードします。

<html> 
<head> 
</head> 
<body> 
<a href="http://www.userlogos.org/files/logos/pek/stackoverflow.png">Link to image</a> 
<br> 
<a href="http://www.userlogos.org/files/logos/pek/stackoverflow.png" download="stackoverflow.png">Download image</a> 
</body> 
</html> 

秒1は、直接画像をダウンロードし、 "として"stackoverflow.png"。可能であれば、名前を付けて保存ダイアログを表示して、画像を保存する名前をユーザーが選択できるようにしたいと思います。画像を右クリックして「画像を別名で保存...」を選択した場合と同じです。ブラウザとOSの間で実際に起こっているので、これは可能ではないかもしれませんが、たとえばdownload=?stackoverflow.png"を指定してMAYBEを指定すると、その名前が表示されることを願っていました。しかし明らかにそうではありません。

+0

この属性を上に配置されていますか?ボタンやリンク? – rsman

答えて

1

リンクの任意の属性を使用してファイルの名前を設定することはできません。ただし、サーバーの要求を変更してContent-Dispositionヘッダーを追加できる場合は、URLの構造に関係なく、ダウンロードされるファイルに特定のファイル名を設定できます。

具体的には、設定する必要があるヘッダーは次のとおりです。

Content-Disposition: attachment; filename="yourfilename.pdf" 
+0

私はあなたが誤解していると思う(おそらく私の言葉に乏しい言葉のために)。私はdownvoteするつもりはありませんが、あなたはあなたの名前を聞いてみることができます。上記の私の編集した質問をご覧ください。 – roryhewitt

関連する問題