Javascript 提交下载文件而不是在浏览器中打开时

Javascript 提交下载文件而不是在浏览器中打开时,javascript,php,html,Javascript,Php,Html,当前其打开在同一个选项卡中,希望下载而不是打开 <form onsubmit="this.action = document.getElementById('selectedfile').value"> <select id="selectedfile"> <option value="/downloads/file1.pdf">File 1</option>

当前其打开在同一个选项卡中,希望下载而不是打开

<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>

文件1
文件2
文件3

我不确定仅用javascript就可以做到这一点。您需要以不同的方式从服务器提供文件

你在用PHP还是什么

您可以发送内容处置标头以强制下载而不是打开

更新:

好吧,我找到了一种不干扰服务器的黑客方法
a
标签有一个可选的
download
属性,您可以创建并触发单击。然后可以删除链接。以下是示例代码:

const form=document.getElementById('form');
表.addEventListener('submit',函数(e){
e、 预防默认值();
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.click();
});

当然,您可以从当前表单中删除onsubmit并添加一个id(示例为#表单)。

我敢肯定,这是一个仅针对pdf文件的浏览器特定设置,因为现代web浏览器中内置了pdf阅读器。您可以为自己的浏览器更改此设置,但不能为任何访问您的网页的客户端更改此设置

以下是如何在上执行此操作的链接:


如果您的浏览器不在此处,则只需搜索“如何禁用[insert browser here]的内置PDF viewer”。

现在,它将在新选项卡中打开,是否有任何方法可以下载而不是在浏览器中打开?您将它设置为什么内容配置头,以便它现在在新选项卡中打开?尝试
附件
是的,我正在使用php(codeigniter),本地目录中有要下载的文件是的,我正在使用php(codeigniter),但我只是使用上面的javascript来处理这个问题。谢谢@Richard,将检查您的代码是否工作正常,将更新谢谢。现在,通过在新选项卡中打开来管理它。