当前位置:编程学习 > C#/ASP.NET >>

从服务器外的共享路径下载文件 难难难!

现在有三台机子,一台 IIS服务器 ,一台 下载服务器,我是客户机 从站点下载文件,但该文件共享在 下载服务器 上,这应该怎么办啊??下面是我原来的下载代码,各位大虾有什么好的解决方案吗?
#region 下载
private void DtgRecord_ItemCommand(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
   switch(e.CommandName)   
   {
case   "Down":  
     string strPath =((LinkButton) e.Item.Cells[1].Controls [1]).Text.ToString();


  FileInfo file = new FileInfo(strPath_02+strPath); // 创建   FileInfo对象用于对文件进行打开(下载)



   if (file.Exists) // 判断是否存在,如果存在进行下载操作,否则提示错误
   {   
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.Filter.Close();
Response.WriteFile(file.FullName);
Response.End();
                       
}
else
{
 Response.Write("<script>var strMessage = '文件在相应目录下不存在或已被处理!';</script>");
 this.Bind();
    }
    break;   
    case     "Play":   
  
break;   
}  


}
#endregion --------------------编程问答-------------------- 客户要求 下载和站点一定要分两台机子 --------------------编程问答-------------------- 下载服务器也架web 服务器,下载就直接指向那边或者转向过去 --------------------编程问答-------------------- 下载服务器上开FTP --------------------编程问答-------------------- 上面的都行``` --------------------编程问答-------------------- up --------------------编程问答-------------------- 小弟我以前没接触过,请详细一点 谢谢了 --------------------编程问答-------------------- 下载服务器也架web 服务器,下载就直接指向那边或者转向过去
==========>这个比较简单.
--------------------编程问答-------------------- 我下载的代码是 Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);这个file.Name 就是一个 绝对路径才行啊 这样能用虚拟路径吗?
--------------------编程问答-------------------- 这里与filename 写什么都无所谓

但是writefile那里就要用绝对路径或内网路径
--------------------编程问答-------------------- code code code ! --------------------编程问答-------------------- file.Exists 能判断http:\\  or  \\192.168.0.1的路径吗?? --------------------编程问答-------------------- \\192.168.0.1\<SharedName>\[FolderName\]<filename>|<foldername>
可以验证合使用

new FileInfo(..);
Response.WriteFile(...); --------------------编程问答-------------------- strPath_02这个路径对? --------------------编程问答-------------------- 方式有多种——
1.下载服务器也架web 服务器,给下载目录设置为虚拟目录,可以直接http方式读取文件到response的输出流OutPutStream。这个最直接简单
2.共享下载服务器的下载目录,然后在IIS服务器的“我的电脑”右键选择“网络映射”,路径为下载服务器的共享目录。这个就可以使用绝对路径
3.同步要下载文件到其它服务器,在下载服务器发布一个同步文件的windows服务,定时扫描本地下载文件目录,如果有更新和删除就把文件实时同步到别的服务器,同步路径可以是内网路径如\\192.168.0.22\d$\downfile\,注意需要设置windows服务登录帐号有存取别的服务器d$的权限,一般为内网域内administrators组成员,也可以新建一个特定权限的域成员。这个方式也可以使用绝对路径,并且支持一个机器向多个服务器的分发 --------------------编程问答-------------------- 第3种中的 d$ 也可以换为共享目录 --------------------编程问答-------------------- “共享下载服务器的下载目录,然后在IIS服务器的“我的电脑”右键选择“网络映射”,路径为下载服务器的共享目录。这个就可以使用绝对路径”
string    strPath = "123123.txt";
string  strPath_02 = "Y:/"  ----为网络映射驱动器
FileInfo file = new FileInfo(strPath_02+strPath);
// 创建FileInfo对象用于对文件进行打开(下载)
if (file.Exists)
我用以上代码是找不到 该文件
--------------------编程问答-------------------- 应该是 string strPath_02 = "Y:\"

你不如直接用 string  strPath = "Y:\123123.txt";
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,