예제 #1
0
파일: FTPs.cs 프로젝트: xiongeee/BBX
        public bool UpLoadFile(string path, string file, FTPUploadEnum ftpuploadname)
        {
            var fTP = new FTP();

            path = path.Replace("\\", "/");
            path = (path.StartsWith("/") ? path : ("/" + path));
            FTPConfigInfo config = null;
            bool          flag   = true;

            switch (ftpuploadname)
            {
            case FTPUploadEnum.ForumAttach:
                config = GetForumAttachInfo;
                break;

            case FTPUploadEnum.SpaceAttach:
                config = GetSpaceAttachInfo;
                break;

            case FTPUploadEnum.AlbumAttach:
                config = GetAlbumAttachInfo;
                break;

            case FTPUploadEnum.MallAttach:
                config = GetMallAttachInfo;
                break;

            case FTPUploadEnum.ForumAvatar:
                config = GetForumAvatarInfo;
                break;
            }
            fTP  = new FTP(config.Serveraddress, config.Serverport, config.Username, config.Password, 1, config.Timeout);
            path = config.Uploadpath + path;
            flag = (config.Reservelocalattach != 1);

            if (!fTP.ChangeDir(path))
            {
                string[] array = path.Split('/');
                for (int i = 0; i < array.Length; i++)
                {
                    string text = array[i];
                    if (text.Trim() != "")
                    {
                        fTP.MakeDir(text);
                        fTP.ChangeDir(text);
                    }
                }
            }
            fTP.Connect();
            if (!fTP.IsConnected)
            {
                return(false);
            }
            int num = 0;

            if (!fTP.OpenUpload(file, Path.GetFileName(file)))
            {
                fTP.Disconnect();
                return(false);
            }
            while (fTP.DoUpload() > 0L)
            {
                num = (int)(fTP.BytesTotal * 100L / fTP.FileSize);
            }
            fTP.Disconnect();
            if (flag && Utils.FileExists(file))
            {
                File.Delete(file);
            }
            return(num >= 100);
        }
예제 #2
0
파일: FTPs.cs 프로젝트: xiongeee/BBX
 public void AsyncUpLoadFile(string path, string file, FTPUploadEnum ftpuploadname)
 {
     this.upload_aysncallback = new delegateUpLoadFile(this.UpLoadFile);
     this.upload_aysncallback.BeginInvoke(path, file, ftpuploadname, null, null);
 }
예제 #3
0
파일: FTPs.cs 프로젝트: terryxym/DiscuzNT
        /// <summary>
        /// 上传远程附件
        /// </summary>
        /// <param name="path">要上传的文件路径(网络地址)</param>
        /// <param name="file">要上传的文件(本地地址)</param>
        /// <param name="ftpuploadname">远程FTP类型(论坛,空间或相册)</param>
        /// <returns>是否成功</returns>
        public bool UpLoadFile(string path, string file, FTPUploadEnum ftpuploadname)
        {
            FTP ftpupload = new FTP();

            //转换路径分割符为"/"
            path = path.Replace("\\", "/");
            path = path.StartsWith("/") ? path : "/" + path;

            //删除file参数文件
            bool delfile = true;

            //根据上传名称确定上传的FTP服务器
            switch (ftpuploadname)
            {
            //论坛附件
            case FTPUploadEnum.ForumAttach:
            {
                ftpupload = new FTP(GetForumAttachInfo.Serveraddress, GetForumAttachInfo.Serverport, GetForumAttachInfo.Username, GetForumAttachInfo.Password, 1, GetForumAttachInfo.Timeout);
                path      = GetForumAttachInfo.Uploadpath + path;
                delfile   = (GetForumAttachInfo.Reservelocalattach == 1) ? false : true;
                break;
            }

            //空间附件
            case FTPUploadEnum.SpaceAttach:
            {
                ftpupload = new FTP(GetSpaceAttachInfo.Serveraddress, GetSpaceAttachInfo.Serverport, GetSpaceAttachInfo.Username, GetSpaceAttachInfo.Password, 1, GetSpaceAttachInfo.Timeout);
                path      = GetSpaceAttachInfo.Uploadpath + path;
                delfile   = (GetSpaceAttachInfo.Reservelocalattach == 1) ? false : true;
                break;
            }

            //相册附件
            case FTPUploadEnum.AlbumAttach:
            {
                ftpupload = new FTP(GetAlbumAttachInfo.Serveraddress, GetAlbumAttachInfo.Serverport, GetAlbumAttachInfo.Username, GetAlbumAttachInfo.Password, 1, GetAlbumAttachInfo.Timeout);
                path      = GetAlbumAttachInfo.Uploadpath + path;
                delfile   = (GetAlbumAttachInfo.Reservelocalattach == 1) ? false : true;
                break;
            }

            //商城附件
            case FTPUploadEnum.MallAttach:
            {
                ftpupload = new FTP(GetMallAttachInfo.Serveraddress, GetMallAttachInfo.Serverport, GetMallAttachInfo.Username, GetMallAttachInfo.Password, 1, GetMallAttachInfo.Timeout);
                path      = GetMallAttachInfo.Uploadpath + path;
                delfile   = (GetMallAttachInfo.Reservelocalattach == 1) ? false : true;
                break;
            }

            //论坛头像
            case FTPUploadEnum.ForumAvatar:
            {
                ftpupload = new FTP(GetForumAvatarInfo.Serveraddress, GetForumAvatarInfo.Serverport, GetForumAvatarInfo.Username, GetForumAvatarInfo.Password, 1, GetForumAvatarInfo.Timeout);
                path      = GetForumAvatarInfo.Uploadpath + path;
                delfile   = (GetForumAvatarInfo.Reservelocalattach == 1) ? false : true;
                break;
            }
            }

            //切换到指定路径下,如果目录不存在,将创建
            if (!ftpupload.ChangeDir(path))
            {
                foreach (string pathstr in path.Split('/'))
                {
                    if (pathstr.Trim() != "")
                    {
                        ftpupload.MakeDir(pathstr);
                        ftpupload.ChangeDir(pathstr);
                    }
                }
            }

            ftpupload.Connect();

            if (!ftpupload.IsConnected)
            {
                return(false);
            }

            int perc = 0;

            //绑定要上传的文件
            if (!ftpupload.OpenUpload(file, System.IO.Path.GetFileName(file)))
            {
                ftpupload.Disconnect();
                return(false);
            }
            //Stopwatch sw = new Stopwatch();
            //sw.Start();

            //开始进行上传
            while (ftpupload.DoUpload() > 0)
            {
                perc = (int)(((ftpupload.BytesTotal) * 100) / ftpupload.FileSize);
            }

            ftpupload.Disconnect();

            //long elapse = sw.ElapsedMilliseconds;
            //sw.Stop();

            //(如存在)删除指定目录下的文件
            if (delfile && Utils.FileExists(file))
            {
                System.IO.File.Delete(file);
            }

            return((perc >= 100) ? true : false);
        }
예제 #4
0
파일: FTPs.cs 프로젝트: Vinna/DeepInSummer
 public void AsyncUpLoadFile(string path, string file, FTPUploadEnum ftpuploadname)
 {
     upload_aysncallback = new delegateUpLoadFile(UpLoadFile);
     upload_aysncallback.BeginInvoke(path, file, ftpuploadname, null, null);
 }
예제 #5
0
파일: FTPs.cs 프로젝트: Vinna/DeepInSummer
        /// <summary>
        /// 上传远程附件
        /// </summary>
        /// <param name="path">要上传的文件路径(网络地址)</param>
        /// <param name="file">要上传的文件(本地地址)</param>
        /// <param name="ftpuploadname">远程FTP类型(论坛,空间或相册)</param>
        /// <returns>是否成功</returns>
        public bool UpLoadFile(string path, string file, FTPUploadEnum ftpuploadname)
        {
            FTP ftpupload = new FTP();
            //转换路径分割符为"/"
            path = path.Replace("\\", "/");
            path = path.StartsWith("/") ? path : "/" +path ;

            //删除file参数文件
            bool delfile = true;
            //根据上传名称确定上传的FTP服务器
            switch (ftpuploadname)
            {
                //论坛附件
                case FTPUploadEnum.ForumAttach:
                    {
                        ftpupload = new FTP(GetForumAttachInfo.Serveraddress, GetForumAttachInfo.Serverport, GetForumAttachInfo.Username, GetForumAttachInfo.Password, 1, GetForumAttachInfo.Timeout);
                        path = GetForumAttachInfo.Uploadpath + path;
                        delfile = (GetForumAttachInfo.Reservelocalattach == 1) ? false : true;
                        break;
                    }

                //空间附件
                case FTPUploadEnum.SpaceAttach:
                    {
                        ftpupload = new FTP(GetSpaceAttachInfo.Serveraddress, GetSpaceAttachInfo.Serverport, GetSpaceAttachInfo.Username, GetSpaceAttachInfo.Password, 1, GetSpaceAttachInfo.Timeout);
                        path = GetSpaceAttachInfo.Uploadpath + path;
                        delfile = (GetSpaceAttachInfo.Reservelocalattach == 1) ? false : true;
                        break;
                    }

                //相册附件
                case FTPUploadEnum.AlbumAttach:
                    {
                        ftpupload = new FTP(GetAlbumAttachInfo.Serveraddress, GetAlbumAttachInfo.Serverport, GetAlbumAttachInfo.Username, GetAlbumAttachInfo.Password, 1, GetAlbumAttachInfo.Timeout);
                        path = GetAlbumAttachInfo.Uploadpath + path;
                        delfile = (GetAlbumAttachInfo.Reservelocalattach == 1) ? false : true;
                        break;
                    }
                //商城附件
                case FTPUploadEnum.MallAttach:
                    {
                        ftpupload = new FTP(GetMallAttachInfo.Serveraddress, GetMallAttachInfo.Serverport, GetMallAttachInfo.Username, GetMallAttachInfo.Password, 1, GetMallAttachInfo.Timeout);
                        path = GetMallAttachInfo.Uploadpath + path;
                        delfile = (GetMallAttachInfo.Reservelocalattach == 1) ? false : true;
                        break;
                    }
                //论坛头像
                case FTPUploadEnum.ForumAvatar:
                    {
                        ftpupload = new FTP(GetForumAvatarInfo.Serveraddress, GetForumAvatarInfo.Serverport, GetForumAvatarInfo.Username, GetForumAvatarInfo.Password, 1, GetForumAvatarInfo.Timeout);
                        path = GetForumAvatarInfo.Uploadpath + path;
                        delfile = (GetForumAvatarInfo.Reservelocalattach == 1) ? false : true;
                        break;
                    }
            }

            //切换到指定路径下,如果目录不存在,将创建
            if (!ftpupload.ChangeDir(path))
            {
                foreach (string pathstr in path.Split('/'))
                {
                    if (pathstr.Trim() != "")
                    {
                        ftpupload.MakeDir(pathstr);
                        ftpupload.ChangeDir(pathstr);
                    }
                }                
            }
            
            ftpupload.Connect();

            if (!ftpupload.IsConnected)
                return false;

            int perc = 0;

            //绑定要上传的文件
            if (!ftpupload.OpenUpload(file, System.IO.Path.GetFileName(file)))
            {
                ftpupload.Disconnect();
                return false;
            }
            //Stopwatch sw = new Stopwatch();
            //sw.Start();
           
            //开始进行上传
            while (ftpupload.DoUpload() > 0)
                perc = (int)(((ftpupload.BytesTotal) * 100) / ftpupload.FileSize);

            ftpupload.Disconnect();

            //long elapse = sw.ElapsedMilliseconds;
            //sw.Stop();    

            //(如存在)删除指定目录下的文件
            if (delfile && Utils.FileExists(file))
                System.IO.File.Delete(file);          

            return (perc >= 100) ? true : false;
        }
예제 #6
0
파일: FTPs.cs 프로젝트: ichari/ichari
        /// <summary>
        /// 普通FTP上传文件
        /// </summary>
        /// <param name="file">要FTP上传的文件</param>
        /// <returns>上传是否成功</returns>
        public bool UpLoadFile(string path, string file, FTPUploadEnum ftpuploadname)
        {
            FTP ftpupload = new FTP();
            //转换路径分割符为"/"
            path = path.Replace("\\", "/");
            path = path.StartsWith("/") ? path : "/" +path ;

            //删除file参数文件
            bool delfile = true;
            //根据上传名称确定上传的FTP服务器
            switch (ftpuploadname)
            {
                //论坛附件
                case FTPUploadEnum.ForumAttach:
                    {
                        ftpupload = new FTP(m_forumattach.Serveraddress, m_forumattach.Serverport, m_forumattach.Username, m_forumattach.Password, m_forumattach.Timeout);
                        path = m_forumattach.Uploadpath + path;
                        delfile = (m_forumattach.Reservelocalattach == 1) ? false : true;
                        break;
                    }

                //空间附件
                case FTPUploadEnum.SpaceAttach:
                    {
                        ftpupload = new FTP(m_spaceattach.Serveraddress, m_spaceattach.Serverport, m_spaceattach.Username, m_spaceattach.Password, m_spaceattach.Timeout);
                        path = m_spaceattach.Uploadpath + path;
                        delfile = (m_spaceattach.Reservelocalattach == 1) ? false : true;
                        break;
                    }

                //相册附件
                case FTPUploadEnum.AlbumAttach:
                    {
                        ftpupload = new FTP(m_albumattach.Serveraddress, m_albumattach.Serverport, m_albumattach.Username, m_albumattach.Password, m_albumattach.Timeout);
                        path = m_albumattach.Uploadpath + path;
                        delfile = (m_albumattach.Reservelocalattach == 1) ? false : true;
                        break;
                    }
                //商城附件
                case FTPUploadEnum.MallAttach:
                    {
                        ftpupload = new FTP(m_mallattach.Serveraddress, m_mallattach.Serverport, m_mallattach.Username, m_mallattach.Password, m_mallattach.Timeout);
                        path = m_mallattach.Uploadpath + path;
                        delfile = (m_mallattach.Reservelocalattach == 1) ? false : true;
                        break;
                    }
            }

            //切换到指定路径下,如果目录不存在,将创建
            if (!ftpupload.ChangeDir(path))
            {
                //ftpupload.MakeDir(path);
                foreach (string pathstr in path.Split('/'))
                {
                    if (pathstr.Trim() != "")
                    {
                        ftpupload.MakeDir(pathstr);
                        ftpupload.ChangeDir(pathstr);
                    }
                }
                
            }
            
            ftpupload.Connect();

            if (!ftpupload.IsConnected)
            {
                return false;
            }
            int perc = 0;

            //绑定要上传的文件
            if (!ftpupload.OpenUpload(file, System.IO.Path.GetFileName(file)))
            {
                ftpupload.Disconnect();
                return false;
            }

            //开始进行上传
            while (ftpupload.DoUpload() > 0)
            {
                perc = (int)(((ftpupload.BytesTotal) * 100) / ftpupload.FileSize);
            }

            ftpupload.Disconnect();

            //(如存在)删除指定目录下的文件
            if (delfile && Utils.FileExists(file))
            {
                System.IO.File.Delete(file);
            }
          

            if (perc >= 100)
            {
                return true;
            }
            else
            {
                return false;
            }
        }