2010-03-03 75 views
0

我有一个需要复制的文件,针对专门为其下载它的人员运行一个命令,然后将该副本提供给用户下载。我使用的是ASP.Net MVC2,我从来没有做过这样的事情。我四处搜寻最简单的方法,但我没有找到太多,所以我想出了一个计划。ASP.Net:生成要下载的文件

我想我要做的就是生成一个guid,它将成为一个文件夹的名称,我将在源文件的相同级别生成该文件夹的副本。然后,我将该文件复制到该文件夹​​,对它运行我的命令,提供一个指向该文件的链接,并且我将有一些不时运行的服务,可以删除超过一天的目录。

我在想这个吗?有没有更容易,更简单,或至少更正式的方式来做到这一点?我的方式似乎有点复杂和混乱。

回答

1

你有什么命令可以对付它?

因为在控制器的操作中使用MVC的FileResult将它处理到内存中是理想的,因为它将它发送给客户端。

查尔斯

+0

嗯,我想在其上运行Windows安装程序的SQL查询,但我在努力寻找如何做到这一点的.NET。它看起来像有一个API,但我似乎无法找到下载它的地方。我很想用这样的代码来完成这一切。 – 2010-03-03 06:21:04

+1

嗯,好吧,我没有任何经验做这种事情。如果在内存中如何做这样的事情,然后用这些知识返回一个'FileResult',你可能会更好。我为这个问题添加了一些标签,可能会有所帮助。 – Charlino 2010-03-03 06:32:59

2

你可以在内存中处理并通过处理程序将其流式传输到客户端吗?

这就是我如何做这样的事情。

基本上,您的下载链接指向一个HttpHandler,通常是异步,它执行处理,然后通过内容处理“附件”和文件名流式传输位。

编辑:我没有做太多的MVC,但查尔斯描述的听起来像和我上面描述的MVC版本。

无论哪种方式,处理内存和流出它可能是你最好的选择。它避免了许多令你头疼的问题,代码和工作流程,否则你将不得不维护。