ASP.NET MVC 保存到客户端上的特定文件夹

Posted

技术标签:

【中文标题】ASP.NET MVC 保存到客户端上的特定文件夹【英文标题】:ASP.NET MVC Saving to a specific folder on the client 【发布时间】:2016-08-04 05:55:36 【问题描述】:

我需要在 MVC 应用程序上执行这些操作:

    用户从网格中选择一个文件 文件需要保存在共享文件夹中 用户使用 Excel 修改文件 文件保存在同一个共享文件夹中 服务器守护程序将处理该文件

我的主要问题(我不知道我是否可以使用处理它)是提示用户提议将文件保存在共享文件夹中......这可能吗?或者我可以通过 javascript 打开知道共享文件夹和文件名的文件吗?

【问题讨论】:

我不确定这是否可行 文件保存方法会帮助你。 【参考方案1】:

如果您已将应用程序托管在客户端的 IIS 上,并且您希望将文件从本地主机保存到客户端。

看看这些代码,也许会对你有所帮助。

if (!string.IsNullOrEmpty(Path))
      
     FileUpload file = new FileUpload();         
     string Folder = HttpContext.Current.Server.MapPath(Path);
     string Path = Path.Combine(Folder, File);
     file.SaveAs(Path);     

但文件夹的路径必须共享..

【讨论】:

和文件是什么类型的对象?但是您的代码将文件保存在共享文件夹中...而不是通过远程路径上的客户端 是的,但是你必须放一个客户端共享文件夹的路径。你知道怎么获得吗? 抱歉,我没听明白,“我认为该文件是一个下载文件” file.SaveAs(Path);文件是什么对象? 让我们continue this discussion in chat。【参考方案2】:

由于安全限制,通过网络应用程序无法将文件本地保存在客户端计算机上的特定位置,据我所知,这适用于所有已知的浏览器。使用共享文件夹或另一台计算机上具有可从 IIS 服务器访问的有效路径的文件夹。

【讨论】:

我的朋友,可以将文件存储在客户计算机的共享文件夹中... 共享文件夹不同 我没有提到共享文件夹。但我现在看到他想要保存到共享文件夹。 是的,这是真的.. 只需编辑您的答案,我就可以投票了。 好的,现在已经搞定了,希望更新后的答案更清晰,谢谢【参考方案3】:

在控制器中尝试这个来获取客户端默认下载文件夹的路径:

  string filename = "YourFile.xls";
    string path = GetDownloadPath();

 private static string GetDownloadPath()
            
                String path = String.Empty;
                RegistryKey rKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main");
                if (rKey != null)
                    path = (String)rKey.GetValue("Default Download Directory");
                if (String.IsNullOrEmpty(path))
                    path = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\downloads";
                return path;
        

【讨论】:

以上是关于ASP.NET MVC 保存到客户端上的特定文件夹的主要内容,如果未能解决你的问题,请参考以下文章

表单帖子上的 asp.net mvc 编码

保存对话框以下载文件,将文件从 ASP.NET 服务器保存到客户端

在ASP.NET中怎样用cookie保存用户名和密码到客户端,下次等自动显示用户名和密码(在MVC的情况下)

即使发送了请求,ASP.NET MVC 表单数据也没有保存到数据库中

ASP.Net MVC - 从 HttpPostedFileBase 读取文件而不保存

在构建后事件中使用命令部署 asp.net mvc 网站