【问题标题】:Open File Dialog Asp.Net打开文件对话框 Asp.Net
【发布时间】:2011-02-04 10:57:12
【问题描述】:

我正在使用 office interop 在 vb.net 中创建一个 excel 报告。报告完成后,我将 excel 文件保存在 C 盘上。用户要求将文件保存在他们想要的任何地方,而不仅仅是 C 盘。谁能给我一些代码来在 asp.net 中弹出一个打开的文件对话框?

我希望对话框在 ASP.NET 中的 saveAs 中弹出。我知道如何在 win 表单中执行此操作,但我正在 asp.net 中创建一个 excel 报告并调用工作表对象 SaveAs 属性,但文件名除外。所以现在我只是在那里硬编码一个文件名。用户想要选择一个文件位置

【问题讨论】:

  • 明确一点...这是通过 ASP.NET 而不是 WinForms 完成的?你把它保存到他们的 C: 驱动器?
  • 我认为您指的是 .NET,而不是 ASP.NET。 ASP.NET 仅在 Web 上下文中使用。
  • 您目前如何将其保存到 C 盘?
  • Dim fn as String="C:\RptCrd.xls" xlWorkBook.SaveAs(fn)
  • 你确定这不是保存到服务器 C: 而不是客户端 C:?

标签: asp.net vb.net


【解决方案1】:

我觉得你想要的其实很简单。

由于安全限制,您无法将文件保存到用户的计算机(您希望网站将文件保存到您的计算机吗?)

你需要做的是:

  1. 完成报告
  2. 将报告文件保存到服务器上的位置,IE (.../myWebsite/files/GUID/myReport.rpt)
  3. 在下一个屏幕上显示指向报告文件的链接

执行此操作,用户可以右键单击文件并将文件保存到他们计算机上所需的任何位置。

您可以按照您想要的任何时间表清理这些文件。

【讨论】:

  • 是的,我想将它保存在客户端上,但也许这只是一个糟糕的设计。它是一个 Intranet 网站应用程序,所以我知道下载到客户端是没有意义的,但在我的情况下,它有点像,因为并非所有用户都可以看到报告,并且经理不希望将报告存档在服务器上。
  • 我以为您可能有某种隐私问题,这就是为什么我将 GUID 用作文件夹的原因,这样您就无法猜测路径。您还可以安排一个进程,每晚删除“文件”文件夹中的所有文件夹,这样报告就不会被归档。
  • 他们想让另一个人在客户端上创建文件并将其保存在他们机器上的任何位置。有办法吗?
【解决方案2】:

假设您实际上是在谈论桌面,winforms 应用程序,那么您可以使用内置的 FileSaveDialog。

官方文档在这里:

但是那里有大量的教程解释它:

【讨论】:

  • 不,我希望对话框在 asp.net 中的 saveAs 中弹出。我知道如何在 win 表单中执行此操作,但我正在 asp.net 中创建一个 excel 报告并调用工作表对象 SaveAs 属性,但文件名除外。所以现在我只是在那里硬编码一个文件名。用户想要选择一个文件位置。
【解决方案3】:

您可以使用Response.TransmitFile() 使用打开/保存对话框来服务器文件。

然后用户会看到一个另存为对话框,他们可以在其中选择文件名和计算机上的位置。

您通常在 HttpHandler 中执行此操作。这里描述一个简单的:

【讨论】:

  • 所以没有简单的方法让用户在asp.net中选择文件位置?
猜你喜欢
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 2023-03-16
  • 2013-05-12
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多