1.使用 a 標(biāo)簽進(jìn)行文件下載時(shí),download 屬性主要是用來(lái)設(shè)置默認(rèn)文件名稱的风题,可以不加。
只要給了文件下載的 href 地址嫉父,a 標(biāo)簽就可以完成下載沛硅。
對(duì)于圖片、pdf類的文件绕辖,我們一般需要加 download摇肌,告訴瀏覽器,下載這個(gè)文件仪际,而不是打開新的標(biāo)簽頁(yè)去預(yù)覽围小。但是,如果后臺(tái)返回圖片/pdf時(shí)树碱,設(shè)置了 filename吩抓,即使前端沒有添加 download 屬性,瀏覽器也會(huì)進(jìn)行下載赴恨。
2.添加了 download 屬性的 a 標(biāo)簽疹娶,點(diǎn)擊訪問(wèn) href 地址,在 chrome 瀏覽器中伦连,不會(huì)攜帶 referer 請(qǐng)求頭雨饺。而在其他瀏覽器中、或是 chrome 訪問(wèn)不帶 download 屬性的 a 標(biāo)簽的 href惑淳,都會(huì)攜帶 referer额港。
【注意】
chrome 對(duì)于 download 屬性處理的這個(gè)行為差異,很可能造成歧焦,加了 download 屬性的 a 標(biāo)簽移斩,訪問(wèn)帶有 referer 校驗(yàn)的下載地址,返回失敗绢馍。從而造成文件下載失斚虼伞(報(bào)服務(wù)器錯(cuò)誤)
綜合1、2舰涌,使用 a 標(biāo)簽進(jìn)行文件下載時(shí)猖任,應(yīng)該盡量不加 download 屬性。對(duì)于圖片等文件瓷耙,讓后臺(tái)設(shè)置??Content-Disposition 為?attachment朱躺,最好同時(shí)指定 filename刁赖,瀏覽器即可下載文件,防止預(yù)覽长搀。
【附:其他相關(guān)知識(shí)】
mac 內(nèi)置的 nc(netcat) 指令宇弛,可以用于起一個(gè)臨時(shí)的服務(wù)、并監(jiān)聽源请,用于測(cè)試枪芒。
如:
nc -l 8000
在 8000 端口起服務(wù),并監(jiān)聽巢钓。