2014-11-20 54 views
0

我最近为我的Web应用程序(用C#编写的ASP.NET)添加了一个方法,用于转到包含一堆电子表格的文件夹并将它们导入到SQL Server表中。我使用管理表设置文件夹和文件名,以便知道如何处理每个文件以及应该去哪个表等。它甚至会跟踪文件日期和时间,以便忽略自上次以来不是新增的任何内容它会导入它们。非常酷,但它只适用于我的开发机器,很可能是因为路径很容易识别。从Web应用程序在本地打开文件

我希望其他人能够做到这一点,但我似乎无法让Web应用程序访问用户本地机器上的预先安排的路径。现在我假设这是正常的(我们不应该能够将Web应用程序伸入某人的机器并抓取文件!),但有什么方法可以使用已知路径或通过让用户选择本地夹?如果我把文件放在网站的一个文件夹中,可能会更容易吗?

达纳

+0

您的Web应用程序只需要必要的权限才能执行此操作。如果你在公司网络中,不应该太难。但如果我是你,我不会通过文件夹监控来做到这一点。我会这样做,用户必须明确上传文件。当然,这一切都取决于很多因素,但我尽量避免通过SMB协议访问文件。 HTTP的速度要快得多。 – mason 2014-11-20 19:45:42

回答

0

如果我正确理解你的问题,这种方法是,你希望用户输入一个本地文件路径和你处理它。

这不会通过网站工作。从安全角度来看,这是非常明智的,正如你指出的那样。所以除非你在本地机器上安装一些客户端应用程序,否则不可能。

您将需要一个文件上传对话框并让用户明确地为您找到文件,单击上传并在服务器上处理它们。

这里的一些其他策略: https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications 但它仍然需要用户手动选择它们。

+0

谢谢,我会尽力走下去。应用程序很容易找到网站上的任何文件夹?这是一些标准的文件路径:http:// xxxx等? – Dana 2014-11-20 19:59:31

+0

@Pleun你的答案假设这是一个公共Web服务器。但答案并没有考虑到这可能是位于公司网络中的服务器上的Web应用程序,Web应用程序正在运行的帐户可能有权访问客户端的文件系统。 *没有*是安装在客户端机器上的应用程序。 – mason 2014-11-20 20:10:31

+0

@mason,但然后用户必须输入完整的UNC路径,包括机器名称 - 该帐户只存在于后端,并且不会通过浏览器访问该级别...理论上,该Web应用程序可以作为域管理员运行但浏览器仍然无能为力。 – Pleun 2014-11-21 16:45:45

相关问题