1

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

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

有什么办法可以防止这种情况发生吗?

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

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

4

4 回答 4

7

有什么办法可以防止这种情况发生吗?

不会。浏览器这样做是为了防止用户意外覆盖同名的现有文件,而您无法控制这一点。

于 2012-05-24T10:56:46.290 回答
1

当然不是。浏览器可以自由地做任何他喜欢的事情(并且实际上做得很好,不会覆盖你的文件,除非你想要这样做)。用户有责任谨慎对待附加的文件。

于 2012-05-24T10:56:58.410 回答
0

不,你完全无法控制这一点。

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

于 2012-05-24T10:58:42.653 回答
0

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

这对计算和编程来说是非常基础的。在编程中,命名空间中也不能有两个同名的类。

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

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

于 2012-05-24T11:08:17.193 回答