浏览ASP.NET中的文件服务器端

时间:2009-01-29 18:25:25

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

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

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

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

感谢任何帮助。

由于

<小时/> 更新:
对于这个项目,我们决定只是为了安全起见,在一个可供用户使用的下拉框中列出可执行文件,因为它们并不真正需要对文件系统的完全访问权限。

4 个答案:

答案 0 :(得分:4)

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

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

有一个here的基本实现示例。

<强>更新

使用该示例,替换“yourfolderHere”的路径需要是虚拟路径,而不是绝对路径。因此,例如“C:\ Inetpub \ wwwroot \ uploads”将无效,但“上传”将起作用。

我希望不要说在实现这样的事情时要考虑严重的安全问题。

答案 1 :(得分:0)

HTMLInputFile仅适用于客户端计算机。

您需要在服务器端浏览的ASPX / HTML中编写文件系统浏览器。 不应该那么难。

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

您可以使用System.IO.Directory来获取目录和文件。这些可以以多种方式显示。只需少于50行代码就可以选择简单的浏览器/文件。

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

此外还有各种安全隐患,因此除非您确实需要,否则不要授予对所有内容的访问权限。