//上传文件
         public static Boolean FtpUpload(string ftpPath, string localFile, FtpServer svr)
         {
             //检查目录是否存在,不存在创建
             FtpCheckDirectoryExist(ftpPath, svr);
             FileInfo fi = new FileInfo(localFile);
             FileStream fs = fi.OpenRead();
             long length = fs.Length;
             FtpWebRequest req = (FtpWebRequest)WebRequest.Create(svr.FtpServerIp + ftpPath + fi.Name);
             req.Credentials = new NetworkCredential(svr.FtpUserId, svr.FtpPassword);
             req.Method = WebRequestMethods.Ftp.UploadFile;
             req.ContentLength = length;
             req.Timeout =  * ;
             try
             {
                 Stream stream = req.GetRequestStream();
                 ; //2K
                 byte[] b = new byte[BufferLength];
                 int i;
                 , BufferLength)) > )
                 {
                     stream.Write(b, , i);
                 }
                 stream.Close();
                 stream.Dispose();
             }
             catch (Exception)
             {
                 return false;
             }
             finally
             {
                 fs.Close();
                 req.Abort();
             }
             req.Abort();
             return true;
         }

         //判断文件的目录是否存,不存则创建
         public static void FtpCheckDirectoryExist(string destFilePath, FtpServer svr)
         {
             string fullDir = FtpParseDirectory(destFilePath);
             string[] dirs = fullDir.Split('/');
             string curDir = "/";
             ; i < dirs.Length; i++)
             {
                 string dir = dirs[i];
                 //如果是以/开始的路径,第一个为空
                 if (!string.IsNullOrEmpty(dir))
                 {
                     try
                     {
                         curDir += dir + "/";
                         FtpMakeDir(curDir, svr);
                     }
                     catch (Exception)
                     {
                         // ignored
                     }
                 }
             }
         }

         public static string FtpParseDirectory(string destFilePath)
         {
             , destFilePath.LastIndexOf("/", StringComparison.Ordinal));
         }

         //创建目录
         public static Boolean FtpMakeDir(string localFile, FtpServer svr)
         {
             FtpWebRequest req = (FtpWebRequest)WebRequest.Create(svr.FtpServerIp + localFile);
             req.Credentials = new NetworkCredential(svr.FtpUserId, svr.FtpPassword);
             req.Method = WebRequestMethods.Ftp.MakeDirectory;
             try
             {
                 FtpWebResponse response = (FtpWebResponse)req.GetResponse();
                 response.Close();
             }
             catch (Exception)
             {
                 req.Abort();
                 return false;
             }
             req.Abort();
             return true;
         }
         public class FtpServer
         {
             public string FtpServerIp { get; set; }
             public string FtpPath { get; set; }
             public string FtpUserId { get; set; }
             public string FtpPassword { get; set; }

         }

【2017002】C#FTP上传文件的更多相关文章

  1. .net FTP上传文件

    FTP上传文件代码实现: private void UploadFileByWebClient() { WebClient webClient = new WebClient(); webClient ...

  2. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  3. FTP上传文件到服务器

    一.初始化上传控件. 1.我们这里用dropzone.js作为上传控件,下载地址http://www.dropzonejs.com/ 2.这里我们使用一个div元素作为dropzone载体. < ...

  4. 再看ftp上传文件

    前言 去年在项目中用到ftp上传文件,用FtpWebRequest和FtpWebResponse封装一个帮助类,这个在网上能找到很多,前台使用Uploadify控件,然后在服务器上搭建Ftp服务器,在 ...

  5. FTP上传文件提示550错误原因分析。

    今天测试FTP上传文件功能,同样的代码从自己的Demo移到正式的代码中,不能实现功能,并报 Stream rs = ftp.GetRequestStream()提示远程服务器返回错误: (550) 文 ...

  6. FTP 上传文件

    有时候需要通过FTP同步数据文件,除了比较稳定的IDE之外,我们程序员还可以根据实际的业务需求来开发具体的工具,具体的开发过程就不细说了,这里了解一下通过C#实现FTP上传文件到指定的地址. /// ...

  7. Java ftp 上传文件和下载文件

    今天同事问我一个ftp 上传文件和下载文件功能应该怎么做,当时有点懵逼,毕竟我也是第一次,然后装了个逼,在网上找了一段代码发给同事,叫他调试一下.结果悲剧了,运行不通过.(装逼失败) 我找的文章链接: ...

  8. C# FTP上传文件至服务器代码

    C# FTP上传文件至服务器代码 /// <summary> /// 上传文件 /// </summary> /// <param name="fileinfo ...

  9. Java ftp上传文件方法效率对比

    Java ftp上传文件方法效率对比 一.功能简介: txt文件采用ftp方式从windows传输到Linux系统: 二.ftp实现方法 (1)方法一:采用二进制流传输,设置缓冲区,速度快,50M的t ...

  10. Ftp上传文件

    package net.util.common; import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...

随机推荐

  1. [TJOI2007]小朋友

    题面 Luogu Sol 弦图最大独立集 做法见上篇博客 # include <bits/stdc++.h> # define RG register # define IL inline ...

  2. 车厢调度(train.cpp)

    车厢调度(train.cpp) [问题描述]        有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合.假设从A方向驶来的火车有n节(n<=1000) ...

  3. Easyui datagrid加载数据时默认全选的问题

    问题描述: 最近使用 Easyui datagrid 展示数据,之前一直使用很正常,今天出现了一个怪异问题 加载数据后,只要点击选中列 ck 的任意行或多行,再刷新时整个datagrid的所有数据都 ...

  4. CentOS 7 下 安装Webmin 启动防火墙失败----Applying firewall rules:iptables-restore:line 2 failed

    最近学习CentOS 7 系统管理,使用的是<CentOS 6.X系统管理实战宝典>一书------因为网购的CentOS 7 的书还没有送到 O(‘  ’!!)O~ (1)先使用yum方 ...

  5. Bootstrap + AngularJS+ Ashx + SQL Server/MySQL

    去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQ ...

  6. Python爬虫教程-28-Selenium 操纵 Chrome

    我觉得本篇是很有意思的,闲着没事来看看! Python爬虫教程-28-Selenium 操纵 Chrome PhantomJS 幽灵浏览器,无界面浏览器,不渲染页面.Selenium + Phanto ...

  7. WCF传输协议

    典型传输协议下的(1)HTTP和HTTPSHTTPS(安全超文本传输协议).它是为了在WWW上解决安全的数据传输而设计的.HTTS是采用了SSL的HTTP,SSL是一种加密协议.它们默认的端口号分别是 ...

  8. mongodb数据库集合操作

    1:更新update update() 方法用于更新已存在的文档.语法格式如下: db.collection.update( <query>, <update>, { upse ...

  9. jQuery的事件绑定和解绑

    1.绑定事件 $('获取的标签对象').bind('要操作的方法,  {操作的内容  是字典的形式},function(){} ') 语法: bind(type,data,fn) 描述:为每一个匹配元 ...

  10. javascript 随机数 生成 n-m

    例子:生成800-1500的随机整数,包含800但不包含1500 代码如下: 1500-800 = 700 Math.random()*700 var num = Math.random()*700 ...