如何为 Web 应用程序目录之外的用户指定本地文件路径?

How to specify a local file path for a user outside of a web application's directory?

我正在创建一个 ASP.NET MVC 网络应用程序,它为用户输入的信息序列化 JSON 文件。我遵循的基本模板是这样运行的:

string jsonData = JsonConvert.SerializeObject(rootObject);
string path = Server.MapPath("~/App_Data/");
System.IO.File.WriteAllText(path + ticket.TicketNumber + ".json", jsonData);
TempData["msg"] = " Json file Generated! Json files generated here can be found in *** ";
return RedirectToAction("Index");;

当我开始尝试弄清楚如何为用户添加一种方法来输入他们想在本地保存文件的位置时(为了让他们可以轻松地将文件签入 TFS 而不是移动文件从应用程序数据文件夹到他们想要的文件夹)我意识到这只在网络应用程序的目录中运行。除了 Server.MapPath(); 之外还有其他东西吗?我是否可以使用它来指定用户 C:\ 驱动器中的位置?

您提供的代码只将文件保存在服务器上,而不是客户端。

如果您希望他们下载文件并将其保存在本地,您需要先将文件保存在服务器上(就像您已经在做的那样),确保文件保存在公开可用的文件夹下并提供具有 link 的用户可以单击以下载文件。

link 将触发浏览器的下载机制并弹出 保存文件 对话框,这样他们就可以选择要保存文件的位置。

还有其他方法可以实现文件下载。查看 Controller class 的 File 方法了解更多详情。