如何将文件从服务器文件夹保存到本地驱动器/客户端?
我在服务器上的某个文件夹中有一个形成的文件。我需要创建一些解决方案,以允许用户将本地文件保存在计算机上的驱动器上。如何将文件从服务器文件夹保存到本地驱动器/客户端?
任何人都可以告诉我如何完成,我应该使用什么控制。
这将打开浏览器另存为对话框:
protected void Page_Load(object sender, EventArgs e)
{
FileStream fs = File.OpenRead(Server.MapPath("~/imgName.jpg"));
byte[] buffer = new byte[(int)fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
fs.Close();
SetResponse("imgName");
HttpContext.Current.Response.BinaryWrite(buffer);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
}
private static void SetResponse(string fileName)
{
string attachment = "attachment; filename=" + fileName + ".jpg";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
HttpContext.Current.Response.ContentType = "image/jpeg";
HttpContext.Current.Response.AddHeader("Pragma", "public");
}
尝试用此权限打开的FileStream:
FileStream fs = new FileStream(Server.MapPath("~/imgName.jpg"), FileMode.Open, FileAccess.Read, FileShare.Read);
正是我需要的。但现在在FileStream上fs = File.OpenRead(Server.MapPath(“〜/ imgName.jpg”));它会返回异常:已经使用的文件!我可以去吗? – 2012-01-11 10:20:46
如果这不能解决问题,请发布代码的上一部分,以便使用该文件。 – zdrsh 2012-01-11 10:53:06
文件NameDB.mdf文件的数据库。它用于整个项目。我尝试允许一些用户复制数据库文件。 – 2012-01-11 13:18:55
你只需要把你的文件链接放在aspx页面。
<a href="path to your file on server">some text here</a>
当用户点击这个链接时,他们会得到下载对话框,用它们可以将文件保存到本地系统。
** HTTP://*.com/questions/3491174/how-to -save-a-file-generated-in-server-machine-in-clients-machinemydocument ** – 2012-01-11 09:24:09
这不是程序文件保存在客户端,用户将启动该过程中提到的帖子,如果我理解正确。 – MUS 2012-01-11 09:28:30
此文件是否托管在某个虚拟目录内的IIS服务器上?我希望这个文件不包含重要的信息。 – 2012-01-11 09:29:35