阻止浏览器重命名下载的文件

时间:2012-05-24 10:54:52

标签: c# asp.net caching browser rename

我的asp.net Web应用程序提供从服务器下载文件的功能(用户单击一个按钮,我使用itextsharp在服务器上构建pdf文件,并使用Response.BinaryWrite将其发送到客户端)。每个文件都已正确命名,例如2012-00001.pdf,2012-00002.pdf,...

问题是,浏览器将这些文件保存到临时目录,如果用户再次下载同一文件,则会重命名为2012-00001(1).pdf。这是一个问题,因为用户想要将文件附加到新的邮件消息(来自acrobat reader,foxit reader,...),附加的文档名称显然是错误的......

有什么方法可以阻止这种情况吗?

编辑 - 我不够清楚。我的问题是:在用户选择“打开”而非“保存”或“另存为”的情况下,有没有办法阻止浏览器将文件保存到临时目录?

感谢大家告诉我一个目录不能包含两个同名的文件:)

4 个答案:

答案 0 :(得分:7)

  

有没有办法阻止这种情况?

没有。浏览器会这样做以防止用户意外覆盖具有相同名称的现有文件,并且您无法控制此文件。

答案 1 :(得分:1)

当然不是。浏览器可以随心所欲地做任何事情(实际上良好的工作不会覆盖你的文件,除非你想这样做)。用户有责任对他所附的文件保持谨慎。

答案 2 :(得分:0)

不,你完全无法控制它。

如果他们只是通过电子邮件发送,也许您可​​以提供一个直接从网站生成PDF和电子邮件的按钮?

答案 3 :(得分:0)

No you cannot prevent this. You cannot have more than 1 files with same name in a folder.

这是计算和编程的基础。在编程中,您也不能在命名空间中拥有两个具有相同名称的类。

让我们假设在一个世界中,像你这样的情况是可以接受的。那么用户如何区分哪些文件是正确的文件?他会继续打开所有文件吗?

如果文件超过2个怎么办?说2,10或50个同名文件。

相关问题