日期:2014-05-17  浏览次数:20918 次

如何获取其他服务器上的文件?

类似于这样的关系,我想通过客户客户端中获取公司服务器上的文档,并下载下来,客户中的客户端和服务端用的是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();
                    }
                }
           &