首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么获取其他服务器上的文件

2013-09-28 
如何获取其他服务器上的文件?类似于这样的关系,我想通过客户客户端中获取公司服务器上的文档,并下载下来,

如何获取其他服务器上的文件?
怎么获取其他服务器上的文件
类似于这样的关系,我想通过客户客户端中获取公司服务器上的文档,并下载下来,客户中的客户端和服务端用的是wcf,而公司服务器和客户服务器只是一个数据库的连接
[解决办法]
可以用SQL语句来获取文件:

select T.c from  openrowset(bulk N'D:\DB_Backup\E5KST01\audit_trail_20130419.bak', single_blob) T(c)
[解决办法]
在你的客户端服务器的WCF服务代码里调用ReadFile方法,传入你公司服务器上文件的物理路径,即可在客户端服务器端获取到公司服务器文件的二进制流了,之后你可以保存下来,也可以直接回发给客户客户端
[code=csharp]
public static void  ReadFile(string filePath)
        {
            string sql = "select T.c from  openrowset(bulk N'" + filePath + "', single_blob) T(c)";
            using (SqlConnection connection = new SqlConnection(@"Data Source=xxxxxx;Initial Catalog=master;User ID=xxxx;Password=xxx;"))
            {
                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    command.CommandType = CommandType.Text;
                    command.CommandTimeout = 300;
                    connection.Open();
                    using(var reader = command.ExecuteReader())
                    {
                        if(reader.Read())
                        {
                            SaveFile(reader[0] as byte[], fileName);
                        }
                        reader.Close();
                    }
                }
            }
        }

        private static void SaveFile(byte[] data, string fileName)
        {
            File.WriteAllBytes(Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, fileName), data);
        }[code]

热点排行