如何将文件从服务器文件夹保存到本地驱动器/客户端?

问题描述:

我在服务器上的某个文件夹中有一个形成的文件。我需要创建一些解决方案,以允许用户将本地文件保存在计算机上的驱动器上。如何将文件从服务器文件夹保存到本地驱动器/客户端?

任何人都可以告诉我如何完成,我应该使用什么控制。

+0

** HTTP://*.com/questions/3491174/how-to -save-a-file-generated-in-server-machine-in-clients-machinemydocument ** – 2012-01-11 09:24:09

+0

这不是程序文件保存在客户端,用户将启动该过程中提到的帖子,如果我理解正确。 – MUS 2012-01-11 09:28:30

+0

此文件是否托管在某个虚拟目录内的IIS服务器上?我希望这个文件不包含重要的信息。 – 2012-01-11 09:29:35

这将打开浏览器另存为对话框:

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); 
+0

正是我需要的。但现在在FileStream上fs = File.OpenRead(Server.MapPath(“〜/ imgName.jpg”));它会返回异常:已经使用的文件!我可以去吗? – 2012-01-11 10:20:46

+0

如果这不能解决问题,请发布代码的上一部分,以便使用该文件。 – zdrsh 2012-01-11 10:53:06

+0

文件NameDB.mdf文件的数据库。它用于整个项目。我尝试允许一些用户复制数据库文件。 – 2012-01-11 13:18:55

你只需要把你的文件链接放在aspx页面。

<a href="path to your file on server">some text here</a> 

当用户点击这个链接时,他们会得到下载对话框,用它们可以将文件保存到本地系统。