html - 给定 URL 时的 HTML 文件输入命名
问题描述
我们的网页上有一个非常标准的文件选择器,定义如下:
<input type="file" multiple="" accept=".csv,.json,.zip,.jpg,.jpeg,.bmp,.png,.gif,image/*">
这适用于选择本地文件,但我们发现如果用户将 URL 粘贴到“文件名”字段中,浏览器(chrome 和 firefox 测试)会将该 URL 下载到临时文件并设置结果文件选择器到该临时文件。
看起来该临时文件的名称仅基于给定的 URL;也就是说,一个 URL likehttp://server/path/download?id=123
将产生一个名称“download”,而一个 URL likehttp://server/path/123.jpg
将产生一个名称“123.jpg”,而不管响应中定义的任何标题(例如content-disposition
)。
所以我的问题:
- 这种行为是否记录在某处?我在 MDN 中找不到。
- 是否可以禁用此功能以仅允许从本地文件系统中进行选择?
- 有没有办法控制 URL 以外的文件名?
解决方案
事实证明,我认为这种行为实际上来自操作系统(Windows 10),而不是浏览器对话框,因为我可以使用其他应用程序重现相同的行为。例如,在 Eclipse 中,我可以在文件打开对话框中粘贴 URL,它们在 Eclipse 中以相同的命名方案打开。我还尝试了其他一些操作系统,正如预期的那样,对话框是由操作系统提供的,所以在某些情况下甚至没有办法输入 URL。
推荐阅读
- php - Symfony,在表单中预先提示/显示验证约束消息
- mysql - 错误 1054 (42S22):“on 子句”中的未知列“pc.project_id”,即使列 project_id 存在
- css - 无法在 Angular 9 项目中使用外部 CSS 样式表
- arrays - 放心 - 响应正文显示成功的空值
- python - openpyxl 中看不到边框
- javascript - NodeJS错误:找不到变量:需要
- discord.py - 如何将消息变成字符串
- google-cloud-platform - Terraform - 重用现有子网在 GCP 上创建云 sql 实例
- html - HTML 问题:我不明白我做错了什么
- customization - Hybris 后台操作验证成功和错误消息