JS實現html頁面點選下載檔案(共兩種實現方法)

NO IMAGE

1.使用<a>標籤來完成

<a href="/user/test/xxxx.txt" download="檔名.txt">點選下載</a>
這樣當使用者開啟瀏覽器點選連結的時候就會直接下載檔案。

但是有個情況,比如txt,png,jpg等這些瀏覽器支援直接開啟的檔案是不會執行下載任務的,而是會直接開啟檔案,這個時候就需要給a標籤新增一個屬性“download”;

以下為例子
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<a href="http://171.188.96.**:****/d/c833945c11/files/?p=/plugins.maintain.CheckLinePartTask/cebab687-6dc5-4128-b7d9-8bc2fe369598.png&raw=1" 
download="test.png">點選下載</a>
</body>
</html>

其中download後面的屬性是下載後檔案的檔名字

若需從網頁上傳的圖片中進行下載  可能會用到以下方法

獲取主機域名:

location.hostname

獲取埠號:

location.port

2.使用按鈕進行監聽

按鈕監聽又可以分為兩種方法,

一是window.open()

var $eleBtn1 = $("#btn1");
var $eleBtn2 = $("#btn2");
//已知一個下載檔案的後端介面:https://codeload.github.com/douban/douban-client/legacy.zip/master
//方法一:window.open()
$eleBtn1.click(function(){
window.open("https://codeload.github.com/douban/douban-client/legacy.zip/master");
});

二是表單提交

//方法二:通過form
$eleBtn2.click(function(){
var $eleForm = $("<form method='get'></form>");
$eleForm.attr("action","https://codeload.github.com/douban/douban-client/legacy.zip/master");
$(document.body).append($eleForm);
//提交表單,實現下載
$eleForm.submit();
});