日期:2014-05-16  浏览次数:20520 次

怎么实现远程上传文件
我在本地有一个文件夹,里面包含各种类型的文件,图片,脚本,cs文件等,要在刷新页面的时候往远程服务器上传,怎么将这个文件夹及里面所有的文件都上传到服务器上?如果服务器不存在这个文件,则创建这个文件目录,如果存在,先删掉再创建。
服务器端又应该怎么写代码来接收呢?
------解决方案--------------------
1、设置共享,然后你就可以当本地文件一样Copy了。
2、FTP 找找FTP的C#调用。

------解决方案--------------------
一样的,远程只不过是加个 ip地址,本地的如:c:\\doc\file
iis服务器:server.Mapth("~/Web/....");
远程的:192.189.0.1\\data(共享的)
------解决方案--------------------
如果只是上传到服务器一个特定的共享目录下面,那么楼上说的已经可以解决你的问题;
如果是上传到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>
        /// 异步上传