"保存为"对话框在Web浏览器下载文件时的使用方法

3
我需要打开一个“另存为”对话框,用户在浏览器中点击链接时会弹出该对话框。该另存为对话框需要显示客户端系统文件夹结构(类似于单词、Excel等的另存为对话框)。
我查看了一些类似的问题。但是经常会将下载的文件保存在客户端设置的下载路径中。
我不想使用ActiveX控件,而希望使用JavaScript来完成相同的操作。
是否可以使用JavaScript打开“另存为”对话框,并将下载文件保存到本地客户端系统的特定路径中?
大多数文章都指出这不可能由于安全性问题。但是他们没有清楚地指出原因(如果有限制浏览器不执行此操作等,则会出现什么安全问题)。 Trigger Save As dialog similar to the image from browser

可能是html5 <a download> 强制“另存为”对话框的重复问题。 - Kaiido
这是一个任务吗?你不能这样做,不是因为安全问题,而是因为没有为此创建API。这是用户的偏好,你无法访问它。 - Kaiido
@DenisTsoi:肯定有关系,但我理解上面的问题是在问他/她是否可以设置默认保存路径,如果不能,为什么不能;那个问题涉及到打开对话框,但不包括这两个方面。 - T.J. Crowder
@Denis,你知道有关安全问题的详细文章吗?我正在寻找能够证明浏览器无法执行此操作的文章。 - Pradeep K
1
@Kaiido,我不认为这是重复的。我正在尝试打开一个类似于图像中的“另存为”对话框。下载强制与此无关。 - Pradeep K
显示剩余5条评论
1个回答

2
是否可以使用JavaScript打开“另存为”对话框,并将下载文件保存到本地客户端系统中的特定路径?不行。您可以建议浏览器打开对话框,但无法告诉它默认位置在哪里。如果这不可能,那么大多数文章都指出了这一点。他们说由于安全原因不可能实现,但他们没有清楚地指出原因...因为人们在单击之前不会阅读内容。所以,如果我给您一个链接到文件并希望将其放在C:\Windows\System32\blahblah驱动器上,并将其设置为文件保存对话框中的默认值,不幸的是,相当大比例的人会盲目地点击“保存”,而不考虑后果。现代操作系统(和旧的*nix)尝试通过使某些操作变得特权来保护用户免受自己的影响,但至少在Windows上,通常只是另一个用户经常不加思索就会回答是/否弹出窗口。因此,最好让浏览器选择用户的标准文档文件夹或他们特意配置的文件夹,而不是让网页指定默认位置。

Crowder,感谢你的回答并解释原因。你知道有哪些文章可以解释这个问题吗?这是我正在做的一个任务的一部分,但为了记笔记,一些论据来证明这个陈述将使我更深入地理解。你知道在哪里可以找到相关资料吗? - Pradeep K
@PradeepK:我目前没有一个,不知道。 (另外,只要您知道,要求链接文章的问题对于Stack Overflow而言是不适合的,因此发布这样的问题并不是最好的选择。) - T.J. Crowder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接