【问题标题】:Browse Files Server-side in ASP.NET在 ASP.NET 中浏览文件服务器端
【发布时间】:2010-10-04 07:35:49
【问题描述】:

我正在创建一个 ASP.NET Web 应用程序,以使用 .NET Wrapper for Scheduled Tasks 从远程位置在我们的服务器上安排任务。但是,我被卡住了。

用户需要能够浏览服务器上的文件系统,以便为用户在此应用程序中创建的新任务检索“要运行的文件”。我需要获取文件路径/文件名并将其传递到 .NET 包装器中。

我尝试过使用 HTMLInputFile,但我还没有找到一种方法来使它对我有用。

感谢任何帮助。

谢谢


更新:
对于这个项目,我们决定简单地在一个下拉框中列出用户可以使用的可执行文件,因为他们并不需要完全访问文件系统,只是为了安全起见。

【问题讨论】:

    标签: asp.net vb.net scheduled-tasks server-side


    【解决方案1】:

    HTMLInputFile 用于浏览客户端的文件系统并将文件上传到服务器。它不用于浏览服务器的文件系统。

    你需要一些完全不同的东西。您将需要一些服务器端代码来通过浏览器向用户显示服务器端文件夹结构。

    这个here有一个基本实现的例子。

    更新:

    对于该示例,您替换“yourfolderHere”的路径必须是虚拟路径,而不是绝对路径。因此,例如“C:\Inetpub\wwwroot\uploads”将不起作用,但“uploads”将起作用。

    我希望在实施这样的事情时要考虑严重的安全问题是不言而喻的。

    【讨论】:

    • 很好的发现,我打算参考这个例子来回答,但你只是打败了我。
    【解决方案2】:

    HTMLInputFile 只能在客户端机器上工作。

    您需要用 ASPX/HTML 编写一个在服务器端浏览的文件系统浏览器。 应该不难做到。

    您不能使用<input type="file" 标签
    这将打开一个浏览客户端计算机的客户端对话框。

    【讨论】:

    • 这就是我害怕的。谢谢
    【解决方案3】:

    据我所知,您需要创建自己的“浏览器”。

    例如,您可以使用 My.Computer.Filesystem 类来检索文件夹中的文件列表并在网页上显示这些文件。然后用户选择相关文件并将响应发送回服务器。

    【讨论】:

      【解决方案4】:

      您可以使用 System.IO.Directory 来获取目录和文件。这些可以通过多种方式显示。一个简单的浏览器/文件选择应该可以在少于 50 行代码中完成。

      另外请注意,您可能需要向运行您的 Web 应用程序的用户授予额外权限,以便可以访问文件系统。

      这还有各种安全隐患,所以除非你真的需要,否则不要授予对所有内容的访问权限。

      【讨论】:

        猜你喜欢
        • 2012-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        • 2021-03-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多