Content-Disposition レスポンスヘッダーによって、挙動が変更できる。

// ダウンロード
Content-Disposition: attachment; filename="〜〜〜"
// ブラウザ
Content-Disposition: inline; filename="〜〜〜"

それぞれ挙動を分けたボタンを作る場合には、PHPのプログラムを使用して、こんな感じにしてやるといいかも(PDF前提)
※セキュリティ要注意

header('Content-Type: application/pdf');
header('Content-Disposition: ' . $GET['inline'] ? 'inline' : 'attachment' . '; filename="' . $__GET['filename'] . '"');
header('Content-Length: ' . filesize($__GET['filepath']));
readfile($__GET['filepath']);