我需要在mvc应用程序的运行时设置保存位置。在windows appication中,我们使用了如何在mvc应用程序的运行时设置保存位置
System.Windows.Forms.SaveFileDialog();
但是,我们使用的是web应用程序?
我需要在mvc应用程序的运行时设置保存位置。在windows appication中,我们使用了如何在mvc应用程序的运行时设置保存位置
System.Windows.Forms.SaveFileDialog();
但是,我们使用的是web应用程序?
目前尚不清楚你想保存什么。在Web应用程序,你可以使用文件输入到文件上传到服务器:
<input type="file" name="file" />
有关在ASP.NET MVC应用程序上传文件,你可能需要看看following post
的更多信息。
另一方面,如果您希望用户能够从服务器下载某个文件并提示他想要保存该文件的位置,则可以从控制器操作返回文件结果并指定MIME类型和文件名:
public ActionResult Download()
{
var file = Server.MapPath("~/App_Data/foo.txt");\
return File(file, "text/plain", "foo.txt");
}
也存在File
方法,使您可以动态地生成一个文件,并把它作为一个流给客户端的其他重载。但是,从服务器下载文件时,在Web应用程序中理解的重要部分是Content-Disposition
标头。它有两个可能的值:inline
和attachment
。例如与上面的代码下面的头将被添加到响应:
Content-Type: text/plain
Content-Disposition: attachment; filename=foo.txt
... contents of the file ...
当浏览器从服务器接收到这个响应会提示用户另存为对话框,允许他选择的位置,他的电脑来存储下载的文件。
UPDATE:
这里是你如何能实现在Web应用程序类似:
public ActionResult Download()
{
var file1 = File.ReadAllLines(Firstfilpath);
var file2 = File.ReadAllLines(2ndfilpath);
var mergedFile = string.Concat(file1, file2);
return File(mergedFile, "text/plain", "result.txt");
}
达林,我得到两个文件在我的服务器端。我需要合并这两个文件并保存单个文件。我需要获取用户手动定位的单个文件名如何可能? – 2013-04-11 05:52:36
只有一个文件可以流式传输到客户端。您可以将这两个文件压缩到一个ZIP文件中,然后将此ZIP文件返回给客户端。如果通过合并*你的意思是别的,那么请解释一下。例如,也许这些文件是一些特殊类型,可以合并。但首先你必须提供关于你的特定场景的更多细节。 – 2013-04-11 05:54:36
现在检查我的帖子。这是Windows应用程序。如何阻止这个Web应用程序? – 2013-04-11 05:58:20