ftp上传、下载、删除、创建新文件夹等操作的整理

  1,上传。供新手参考

 //文件上传地址根目录,这里通过IIS架设本地主机为FTP服务器  
            string FileSaveUri = @"ftp://服务器id/要上传的文件夹/";//服务器名以及要上传的文件夹名。
            //FTP用户名密码
            string ftpUser = "登录名";
            string ftpPassWord = “密码";

            Stream requestStream = null;
            Stream fileStream = null;
            FtpWebResponse uploadResponse = null;//创建FtpWebResponse实例uploadResponse  
            //Btn_Upload.  
            if (fupPhoto.HasFile)
            {
                //获取文件长度  
                int FileLength = fupPhoto.PostedFile.ContentLength;
                //限制上传文件最大不能超过500M  
                if (FileLength < 512 * 1024 * 1024)
                {
                    try
                    {
                        //格式化为URI  
                        Uri uri = new Uri(FileSaveUri + Path.GetFileName(fupPhoto.PostedFile.FileName));
                        FtpWebRequest uploadRequest = (FtpWebRequest)WebRequest.Create(uri);//创建FtpWebRequest实例uploadRequest  

                        //设置请求的方法是FTP文件下载

                        uploadRequest.KeepAlive = false;//这些小地方很重要。没有设置好可能会上传不成功
                        uploadRequest.UsePassive = false;
                        uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;//将FtpWebRequest属性设置为上传文件  
                        uploadRequest.Credentials = new NetworkCredential(ftpUser, ftpPassWord);//认证FTP用户名密码  
                        requestStream = uploadRequest.GetRequestStream();//获得用于上传FTP的流  
                        byte[] buffer = new byte[FileLength];
                        fileStream = fupPhoto.PostedFile.InputStream;//截取FileUpload获取的文件流,作为上传FTP的流  
                        fileStream.Read(buffer, 0, FileLength);
                        requestStream.Write(buffer, 0, FileLength);//将buffer写入流  
                        requestStream.Close();
                        uploadResponse = (FtpWebResponse)uploadRequest.GetResponse();//返回FTP服务器响应,上传完成  
                        //上传成功  
                    }
                    catch (Exception ex)
                    {
                        //无法上传  
                    }
                    finally
                    {
                        if (uploadResponse != null)
                            uploadResponse.Close();
                        if (fileStream != null)
                            fileStream.Close();
                        if (requestStream != null)
                            requestStream.Close();
                    }
                }//end if #FileLength#  
                else
                {
                    //上传文件过大   
                }
            }//end if #FileUpload.HasFile#  
            else
            {
                //未选择文件  
            }  
2,下载
            string filelrc = Page.MapPath("要保存的路径。我测试时是保存在根目录下某个文件夹下的");
            string urllrc = @"ftp://服务器ip/要下载的文件所在的位置";
            DownLoad(filelrc, urllrc);
          

 private void DownLoad(string FileName, string url)
        {
            // string TempFolderPath =@"C:\song\";//本地保存目录
            string FtpUserName = "用户名";
            string FtpPassWord = "密码";
            //创建一个文件流
            FileStream fs = null;
            Stream responseStream = null;

            try
            {
                //创建一个与FTP服务器联系的FtpWebRequest对象
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(url));
                //设置请求的方法是FTP文件下载
                request.Method = WebRequestMethods.Ftp.DownloadFile;
                request.KeepAlive = false;
                request.UsePassive = false;
                //连接登录FTP服务器
                request.Credentials = new NetworkCredential(FtpUserName, FtpPassWord);
                //获取一个请求响应对象

                FtpWebResponse response = (FtpWebResponse)request.GetResponse();
                //  WebExceptionStatus.ConnectFailure;
                //获取请求的响应流
                responseStream = response.GetResponseStream();
                //判断本地文件是否存在,如果存在,则打开和重写本地文件

                if (File.Exists(FileName))
                {
                    // fs = File.Open(FileName, FileMode.Open, FileAccess.ReadWrite);
                    return;
                }
                //判断本地文件是否存在,如果不存在,则创建本地文件
                else
                {
                    fs = File.Create(FileName);
                }
                if (fs != null)
                {
                    int buffer_count = 65536;
                    byte[] buffer = new byte[buffer_count];
                    int size = 0;
                    while ((size = responseStream.Read(buffer, 0, buffer_count)) > 0)
                    {
                        fs.Write(buffer, 0, size);
                    }
                    fs.Flush();
                    fs.Close();
                    responseStream.Close();
                }
            }
            finally
            {
                //Response.Write(response.StatusDescription);
                if (fs != null)
                    fs.Close();
                if (responseStream != null)
                    responseStream.Close();
            }
        }

3,创建目录

   public void MakeDir(string dirName)
        {
            string ftpServerIP = @"服务器ip";

            string ftpUserID = @"用户名";

            string ftpPassword = @"密码";
            try
            {
                string uri = "ftp://" + ftpServerIP + "/Photo/" + dirName;

                // 根据uri创建FtpWebRequest对象
                reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
                // 指定数据传输类型
                reqFTP.UseBinary = true;

                // ftp用户名和密码

                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);

                reqFTP.Method = WebRequestMethods.Ftp.MakeDirectory;

                FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();

                response.Close();

            }

            catch (Exception ex)
            {


            }

        }

4,删除

 

public void DeleteFileName()
        {
                string uri = "ftp://服务器ip地址/文件路径";
            try
            {
                //用户名密码
                string FtpUserName = "用户名";
                string FtpPassWord = "密码";
                //创建一个与FTP服务器联系的FtpWebRequest对象 
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(url));
                //设置请求的方法是FTP文件删除 
                request.Method = WebRequestMethods.Ftp.DeleteFile;
                request.KeepAlive = false;
                request.UsePassive = false;
                //连接登录FTP服务器 
                request.Credentials = new NetworkCredential(FtpUserName, FtpPassWord);
                //获取一个请求响应对象      
                FtpWebResponse response = (FtpWebResponse)request.GetResponse();
                response.Close();
            }

            catch (Exception ex)
            {
                Response.Write("<script>alert("+ex.Message+")</script>");
            }

        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC 中提供了 CFtpConnection 类来实现 FTP 文件上传下载删除操作。下面是一个简单的示例代码,实现上传下载删除文件夹的功能: ```c++ #include <afxinet.h> // FTP 服务器地址 CString strServer = "ftp.example.com"; // FTP 服务器用户名 CString strUser = "username"; // FTP 服务器密码 CString strPass = "password"; // 上传文件到 FTP 服务器 void UploadFile(CString strLocalFile, CString strRemoteFile) { // 创建 FTP 连接 CFtpConnection ftpConn; if (!ftpConn.Open(strServer, strUser, strPass)) { // 连接失败 return; } // 上传文件 if (!ftpConn.PutFile(strLocalFile, strRemoteFile)) { // 上传失败 } // 关闭 FTP 连接 ftpConn.Close(); } // 下载文件从 FTP 服务器 void DownloadFile(CString strRemoteFile, CString strLocalFile) { // 创建 FTP 连接 CFtpConnection ftpConn; if (!ftpConn.Open(strServer, strUser, strPass)) { // 连接失败 return; } // 下载文件 if (!ftpConn.GetFile(strRemoteFile, strLocalFile)) { // 下载失败 } // 关闭 FTP 连接 ftpConn.Close(); } // 删除 FTP 服务器上的文件夹 void DeleteDirectory(CString strRemoteDir) { // 创建 FTP 连接 CFtpConnection ftpConn; if (!ftpConn.Open(strServer, strUser, strPass)) { // 连接失败 return; } // 删除文件夹 if (!ftpConn.RemoveDirectory(strRemoteDir)) { // 删除失败 } // 关闭 FTP 连接 ftpConn.Close(); } ``` 需要注意的是,CFtpConnection 类提供了很多其他的 FTP 操作方法,可以根据具体需求进行调用。同时,FTP 服务器的地址、用户名和密码需要根据实际情况修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值