我应该在哪里保存ASP.NET Web API动态生成的文件?

时间:2013-08-21 19:56:45

标签: asp.net asp.net-mvc asp.net-web-api

我的ASP.NET Web API服务动态生成供用户下载的文件。

远程应用程序向API发送请求:

  1. 生成文件并保存---->哪里?? < -----
  2. 返回文件位置的URL,以便下载。
  3. 没有什么花哨的,但我的问题是保存这些文件的最佳做法是什么? 一些挖掘表明App_Data可能是合适的地方,但我还没有看到任何确定的东西。

    一些注意事项:

    • 这一切都发生在公司内部网上,因此安全性并不是什么大问题。
    • 这些文件基本上是临时的。有没有一种简单的方法可以在下载文件后删除它?没什么大不了的 - 我可以设置一个计划任务来清除目标文件夹。

    谢谢!

2 个答案:

答案 0 :(得分:4)

您可以写入应用程序存储数据的任何位置。

我建议使用系统Temp目录,这就是它的用途(System.IO.Path.GetTempPath()),或者你是否有写访问权限,是你的应用程序的子目录:

String path = Server.MapPath("~/Temp");
if( !Directory.Exists( path ) ) Directory.CreateDirectory( path );

using(FileStream fs = File.OpenWrite( Path.Combine( path, "TempFileName.dat" ) )) {
    fs.Write( new Byte[1024] );
}

答案 1 :(得分:1)

如果您可以访问Web服务器,还可以在Web应用程序下创建一个虚拟目录,并将其配置为指向您想要的任何文件位置。然后,您可以让应用程序使用System.IO将文件保存到该虚拟目录中。这就是我过去所做的。