我正在用Python和Flask构建一个web应用程序。这是目录结构:
TopWebApp
│
└───webApp
│ │ ui.py
│ │ back-end.py
│ │ result.txt
│ │
│ └───templates
│ │ index.html
│ │ ...
│
└───venv
| ...
在index.html中,我有:
<a href="C:Users...webAppresult.txt" download>
<button>click here</button>
</a>
在chrome 70中,当我单击"单击此处"按钮时,不会下载任何内容,如果我在新选项卡中打开它,新选项卡将显示"about::blank"。
由于result.txt保存在同一目录下,我尝试更改"href=".result.txt"one_answers"href="./result.txt",但下载时收到一个失败-无文件。你知道为什么会发生这种事吗?
作为一种安全措施,浏览器将阻止通过超链接链接到本地文件(例如C:
驱动器上的文件(。该包括具有download
属性的超链接。如果您希望允许用户从您的服务器下载,则需要相对于服务器本身进行引用。这可以用https://www.yourwebsite.com/yourfile.txt
这样的绝对链接来完成,不过我建议使用相对链接,比如:
<a href="../result.txt" download>
<button>click here</button>
</a>
请注意,在这个特定的示例中,该文件是链接到它的文件的一个文件夹,因此您需要使用../
遍历目录结构。
如果您只是直接通过文件资源管理器打开文件(与localhost
相反,您需要file:///
前缀,如file:///C:/Users/.../webApp/result.txt
。请注意开头的三个正斜杠和整个正斜杠。