C#怎么实现FTP上传文件
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本文小编为大家详细介绍"C#怎么实现FTP上传文件",内容详细,步骤清晰,细节处理妥当,希望这篇"C#怎么实现FTP上传文件"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1
千家信息网最后更新 2025年02月02日C#怎么实现FTP上传文件
本文小编为大家详细介绍"C#怎么实现FTP上传文件",内容详细,步骤清晰,细节处理妥当,希望这篇"C#怎么实现FTP上传文件"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
1.通过用FTP进行上传文件,首先要实现建立FTP连接,一般建立FTP连接,需要知道FTP配置有关的信息。一般要在Bean中建立一个ServiceFileInfo.cs文件进行记录,一般需要FTP地址、登录用户名和登录密码。然后通过其他页面进行访问读取。代码样式如下:
class ServiceFileInfo { // service1 public static string txtFilePath = @"ftp://12.128.128.01/FileName/"; //userid & password public static string txtUID = "username"; public static string txtPWD = "password"; }
2.通过主方法读取Bean文件下面的的ServiceFileInfo.cs文件的信息,去实现建立FTP连接。这里还需要清楚的知道你上传文件的路径(Path)和文件名称(FileName)。根据这些信息主方法去调用写着Bean中的另外一个ftpOperation.cs 文件(这个.cs文件中主要写一些关于FTP的操作方法),进行FTP访问操作。
主方法调用FTP操作代码
ExecutionResult exeRes = this.ftpOperation.UploadFile(textFilePath, txtUID, txtPWD, Path + "/" + FileName + ".txt");//.txt为文件的后缀名
Bean文件中ftpOperation.cs文件关于FTP操作的方法
public ExecutionResult UploadFile(string vIMSPath, string vUID, string vPassword, string vLocalPath) { ExecutionResult result = new ExecutionResult(); result = connectState(vIMSPath, vUID, vPassword, vLocalPath);//调用下面代码方法 if (result.Status) { File.Delete(vLocalPath); } return result; }
connectState()方法
public static ExecutionResult connectState(string vIMSPath, string vUID, string vPassword, string fileName) { string operater = ""; bool Flag = false; ExecutionResult result; result = new ExecutionResult(); lock (lockObj) { try { operater = "Connet to FTP"; FTPOperation ftp = new FTPOperation(new Uri(vIMSPath), vUID, vPassword); operater = "Upload file"; Flag = ftp.UploadFile(fileName, Path.GetFileName(fileName), true); if (Flag) { result.Status = true; result.Message = "Send to server OK"; } } catch (Exception ex) { result.Status = false; result.Anything = "Mail"; result.Message = operater + ":" + ex.Message; } } return result; }
UploadFile()方法
public bool UploadFile(string LocalFullPath, string RemoteFileName, bool OverWriteRemoteFile) { bool result; try { bool flag = !this.IsValidFileChars(RemoteFileName) || !this.IsValidFileChars(Path.GetFileName(LocalFullPath)) || !this.IsValidPathChars(Path.GetDirectoryName(LocalFullPath)); if (flag) { throw new Exception("非法文件名或目录名!"); } bool flag2 = File.Exists(LocalFullPath); if (!flag2) { throw new Exception("本地文件不存在!"); } FileStream fileStream = new FileStream(LocalFullPath, FileMode.Open, FileAccess.Read); byte[] array = new byte[fileStream.Length]; fileStream.Read(array, 0, (int)fileStream.Length); fileStream.Close(); result = this.UploadFile(array, RemoteFileName, OverWriteRemoteFile); } catch (Exception ex) { this.ErrorMsg = ex.ToString(); throw ex; } return result; }public bool UploadFile(byte[] FileBytes, string RemoteFileName) { bool flag = !this.IsValidFileChars(RemoteFileName); if (flag) { throw new Exception("非法文件名或目录名!"); } return this.UploadFile(FileBytes, RemoteFileName, false); }public bool UploadFile(byte[] FileBytes, string RemoteFileName, bool OverWriteRemoteFile) { bool result; try { bool flag = !this.IsValidFileChars(RemoteFileName); if (flag) { throw new Exception("非法文件名!"); } bool flag2 = !OverWriteRemoteFile && this.FileExist(RemoteFileName); if (flag2) { throw new Exception("FTP服务上面已经存在同名文件!"); } this.Response = this.Open(new Uri(this.Uri.ToString() + RemoteFileName), "STOR"); Stream requestStream = this.Request.GetRequestStream(); MemoryStream memoryStream = new MemoryStream(FileBytes); byte[] array = new byte[1024]; int num = 0; for (;;) { int num2 = memoryStream.Read(array, 0, array.Length); bool flag3 = num2 == 0; if (flag3) { break; } num += num2; requestStream.Write(array, 0, num2); } requestStream.Close(); this.Response = (FtpWebResponse)this.Request.GetResponse(); memoryStream.Close(); memoryStream.Dispose(); FileBytes = null; result = true; } catch (Exception ex) { this.ErrorMsg = ex.ToString(); throw ex; } return result; }
读到这里,这篇"C#怎么实现FTP上传文件"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
文件
方法
文件名
C#
代码
信息
文章
内容
目录
目录名
登录
妥当
清楚
后缀
地址
密码
思路
新知
更多
样式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全审查包括
查找数据库中所有字段语句
创见网络技术有限公司
软件开发项目职责怎么写
吉林oa管控软件开发平台
国家网络安全手抄报要简单的
如何打开DNS服务器管理
网络安全管理市场规模
青海信创服务器
收获日2大银行服务器机房
dns服务器网页打不开
透视新科技卫星互联网
云朵互联网科技
微擎数据库查询
网络安全大数据cia
网络技术昵称
5g网络技术提出
确定网络安全联络员
数据库包的概念
沼泽生态管理系统数据库
数据库创表照片列代码
软件开发的周期的阶段划分法
方舟服务器怎么弄安全
提问服务器管理与维护
荔枝网络技术有限公司电话
乐视视频软件开发
杭州物流软件开发收费
创游网络技术有限公司
泰隆银行软件开发岗公积金
老年网络安全员培训