[英]upon submit download file instead of opening in the browser
目前它在同一个选项卡中打开,想要下载而不是打开。
<form onsubmit="this.action = document.getElementById('selectedfile').value">
<select id="selectedfile">
<option value="/downloads/file1.pdf">File 1</option>
<option value="/downloads/file2.pdf">File 2</option>
<option value="/downloads/file3.pdf">File 3</option>
</select>
<input type="submit" value="Download" class="grey-btn" class="color:#ffffff, backgroud-color:#ff0000;" />
</form>
我不确定这只能用 javascript 来完成。 您需要以不同的方式从您的服务器提供文件。
你使用的是PHP还是什么?
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
您可以发送一个内容处置标头来强制下载而不是打开。
更新:
好的,所以我找到了一种在不弄乱服务器的情况下执行此操作的hacky方法。 a
标签有一个可选的download
属性,您可以创建并触发点击。 然后你可以删除链接。 这是示例代码:
const form = document.getElementById('form');
form.addEventListener('submit', function(e) {
e.preventDefault();
const selectedValue = document.getElementById('selectedfile').value;
console.log(selectedValue)
const link = document.createElement('a');
link.setAttribute('download', selectedValue);
link.href = selectedValue;
document.body.appendChild(link);
link.click();
});
您当然会从您拥有的当前表单中删除 onsubmit 并添加一个 id(示例是 #form)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.