如何从网页创建打开文件对话框?

时间:2018-11-09 16:04:23

标签: c# .net webforms

我正在创建.Net Core Web应用程序,以查看驻留在Web服务器上的日志文件和其他结果文件,以及启动和停止生成这些文件的某些应用程序。我看到了对OpenFileDialog的引用,但是我一生都找不到如何解决该引用的方法。我得到类型或名称空间的OpenFileDialog找不到,您是否缺少参考...当然我也缺少参考!问题是,即使找到使用的示例,似乎也没有人提及他们的“使用”声明是为了获得使用的。 System.Windows.Forms不是答案,因为它说Forms不在System.Windows中。关于如何找到要包括的正确NuGet软件包,是否有任何指导?如何找到using语句?甚至Microsoft文档也没有告诉您它所在的软件包。

我想打开一个网页,并将目录设置为放置结果的服务器上的文件夹,然后选择一个结果文件或日志文件并打开它。如果我对路径进行硬编码,则代码可以正常工作

    public void OnGet()
    {
        string directory = @"a directory";
        using (OpenFileDialog openFileDialog = new OpenFileDialog() )
        {
// the OpenFileDialog is underlined and says, no namespace, etc.
        }
        string logFile = String.Concat(directory, @"a file in the directory");
        logContent.Append(String.Format(@"<h2>{0}</h2>", logFile));

...

1 个答案:

答案 0 :(得分:2)

没有一种简单的方法来执行此操作,因为文件位于服务器上,但您希望在客户端上使用UI。每次用户更改目录时,您都需要往返。

您可以只为IIS中的那些文件夹启用目录浏览(假设这些目录位于wwwroot中),但是要小心,因为用户将能够看到其中的所有内容。这允许用户下载和查看服务器上的文件,但不会告诉您他们选择了什么,因此您无法使用该文件输入代码。

https://www.ntweekly.com/2017/07/21/enable-directory-browsing-in-iis-10-and-windows-server-2016/