請參閱我的以下代碼。它作業正常,但是通過輸入所需的密鑰下載檔案時,檔案名發生了變化,并且正在下載整個域名 目錄 檔案名。但我只想要檔案名。
代碼 :
//這是HTML部分。
<center>
<input class="keyBox" style="padding : 10px; padding-left:15px; padding-right:15px" type="text" width="100px" placeholder="Enter your download key">
<br><br>
<div class="text-center">
<button id="down" class="btn btn-style btn-primary">Download</button>
</div>
</center>
// 這是我正在使用的腳本。
<script>
const files = [{
key: 12345,
path: 'Marouf.png'
}, {
key: 12477,
path: 'Ismat.png'
}]
const globalPath = 'https://abcd.com/directory/certificates/'
const inp = document.querySelector('.keyBox')
const btn = document.querySelector('#down')
btn.addEventListener('click', downloadURI)
function downloadURI() {
if (inp.value) {
let uri = files.filter(f => f.key === Number(inp.value))
if (uri.length) {
let link = document.createElement("a");
const fullPath = globalPath uri[0].path
link.download = fullPath;
link.href = fullPath;
link.click();
} else {
alert("Incorrect download key! Try again...")
}
}
}
</script>
uj5u.com熱心網友回復:
有多種方法可以解決您的問題。最簡單的解決方法是設定download屬性不帶值
link.download = '';
這將使用 URL 的最后一段作為檔案名。
download使瀏覽器將鏈接的 URL 視為下載。可以帶或不帶值使用:
如果沒有值,瀏覽器將建議從各種來源生成的檔案名/擴展名:
- Content-Disposition HTTP 標頭
- URL 路徑中的最后一段
- 媒體型別(來自 Content-Type 標頭、資料的開頭:URL 或 Blob 的 Blob.type:URL)
定義一個值建議它作為檔案名。/ 和 \ 字符轉換為下劃線 (_)。檔案系統可能會禁止檔案名中包含其他字符,因此瀏覽器會在必要時調整建議的名稱。
MDN
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/475631.html
標籤:javascript html 网络 下载
