我正在使用 MVC 开发一个 Web 应用程序,该应用程序托管在 Web 服务器中。每当用户访问应用程序时,它都必须从客户端计算机获取本地应用程序数据文件夹。
有没有可能的方法来实现上述场景?
我尝试过使用Environment.Specialfolder
,但它给出的是Web服务器本地数据的路径,而不是客户端计算机的路径
C#:
string s = Environment.GetFolderPath(
Environment.SpecialFolder.LocalApplicationData);
最佳答案
服务器端代码不能只访问客户端计算机上的文件。相反,此功能应使用客户端脚本来实现。
如果您需要让您的应用程序在用户计算机上保留一些数据或文件,然后读取该数据并将其发送到服务器(或在客户端上使用它),那么在现代浏览器中您有很多选择:
- Cookie
- localStorge
- IndexedDB
- fileSystem API ,虽然它不是标准的一部分,所以要小心
从用户计算机中获取任意文件是完全不同的情况,因为它具有安全隐患。您的选择是:
- 输入
<input type="file">
在页面上,让用户选择要上传到服务器的文件。 - 使用HTML Drag & Drop让用户将文件拖到您的页面上
- 开发一个附带的桌面应用程序,用户必须将其安装在自己的计算机上。
- 您还可以探索开发浏览器扩展的可能性,不过据我所知,这将使您对用户文件系统的访问非常有限。今天的主要标准是 Web Extensions对于主流浏览器,以及 Browser Helper Objects对于 Internet Explorer。
关于c# - 有没有办法从Web服务器托管的Web应用程序访问客户端(用户)特殊文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56442124/