提问人:C Murphy 提问时间:10/12/2018 更新时间:10/12/2018 访问量:465
如何为 Web 应用程序目录之外的用户指定本地文件路径?
How to specify a local file path for a user outside of a web application's directory?
问:
我正在创建一个 ASP.NET MVC Web 应用程序,该应用程序序列化用户输入信息的 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,而不是将文件从应用数据文件夹移动到他们想要的文件夹),我意识到这仅在 Web 应用的目录中运行。除了 Server.MapPath() 之外还有其他东西吗?我可以用来指定用户 C:\ 驱动器中的位置?
答:
0赞
JuanR
10/12/2018
#1
您提供的代码仅将文件保存在服务器上,而不保存在客户端上。
如果您希望他们下载文件并将其保存在本地,则需要先将文件保存在服务器上(就像您已经在做的那样),确保文件保存在公开可用的文件夹下,并为用户提供视图上的链接,他们可以单击该链接来下载文件。
该链接将触发浏览器的下载机制并弹出“保存文件”对话框,以便他们选择要保存文件的位置。
还有其他方法可以实现文件下载。有关详细信息,请查看该类的 File 方法。Controller
评论
0赞
C Murphy
10/12/2018
感谢您@JuanR及时和有用的回复,但是我是否需要另存为对话框才能完成此操作,或者有没有办法根据用户输入的位置自动下载它?
0赞
JuanR
10/12/2018
@CMurphy:我在发布原始答案后添加了评论。还有其他方法可以直接流式传输文件。查看有关该方法的说明。File
评论