1、设置共享,然后你就可以当本地文件一样Copy了。
2、FTP 找找FTP的C#调用。

解决方案 »

  1.   

    一样的,远程只不过是加个 ip地址,本地的如:c:\\doc\file
    iis服务器:server.Mapth("~/Web/....");
    远程的:192.189.0.1\\data(共享的)
      

  2.   

    如果只是上传到服务器一个特定的共享目录下面,那么楼上说的已经可以解决你的问题;
    如果是上传到ftp服务器,那么可以参考如下例子:
    /// <summary>
            /// ftp保存文件
            /// </summary>
            /// <param name="ftpUrl">目标端的ftp地址</param>
            /// <param name="fileName">保存的文件名</param>
            /// <param name="userName">登录ftp端的用户名</param>
            /// <param name="userPwd">登录ftp端的密码</param>
            public static void FtpUp(string ftpUrl, string fileName, string userName, string userPwd)
            {
                FileStream uFile = null;
                //打开一个文件流去读上传的文件
                uFile = File.Open(fileName, FileMode.Open);
                //创建一个ftp请求对象
                FtpWebRequest ftpReq = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpUrl));
                // ftp用户名和密码
                ftpReq.Credentials = new NetworkCredential(userName, userPwd);
                //指定数据传输类型为二进制
                ftpReq.UseBinary = true;
                // 指定执行什么命令
                ftpReq.Method = WebRequestMethods.Ftp.UploadFile;
                //成功执行一个命令后连接被关闭
                ftpReq.KeepAlive = false;
                //上传文件时通知服务器文件的大小   
                ftpReq.ContentLength = uFile.Length;
                uFile.Close();
                FileName = fileName;
                //开始以异步方式打开请求的内容流以便写入
                ftpReq.BeginGetRequestStream(new AsyncCallback(EndGetStreamCallback), ftpReq);
            }        /// <summary>
            /// 异步上传
            /// </summary>
            /// <param name="ar"></param>
            private static void EndGetStreamCallback(IAsyncResult ar)
            {
                FtpWebRequest uploadRequest = null;
                FileStream fileStream = null;
                Stream requestStream = null;
                try
                {
                    //用户定义对象,其中包含该操作的相关信息,在这里得到FtpWebRequest
                    uploadRequest = (FtpWebRequest)ar.AsyncState;
                    //结束由BeginGetRequestStream启动的挂起的异步操作 
                    //必须调用EndGetRequestStream方法来完成异步操作 
                    //通常EndGetRequestStream由callback所引用的方法调用
                    requestStream = uploadRequest.EndGetRequestStream(ar);
                    string strFileName = FileName;
                    fileStream = File.Open(strFileName, FileMode.Open);
                    byte[] buffer = new byte[10240];
                    int bytesRead;
                    while (true)
                    {
                        bytesRead = fileStream.Read(buffer, 0, buffer.Length);
                        if (bytesRead == 0)
                            break;
                        //本地的文件流数据写到请求流
                        requestStream.Write(buffer, 0, bytesRead);
                    }
                    //开始以异步方式向FTP服务器发送请求并从FTP服务器接收响应
                    uploadRequest.BeginGetResponse(new AsyncCallback(EndGetResponseCallback), uploadRequest);
                }
                catch (Exception ex)
                {
                    //MessageBox.Show("Sorry!Error saving the file in different places:" + ex.Message, "System Information");
                }
                finally
                {
                    if (requestStream != null)
                        requestStream.Close();
                    if (fileStream != null)
                        fileStream.Close();
                }
            }