C# WinForms应用如何将编辑后的TXT文件上传至FTP网站?
用C# WebClient实现FTP文件上传
当然有对应的实现方法啦!既然你已经用WebClient完成了FTP文件的下载,那用它来上传编辑后的内容也非常顺手——WebClient本身就支持FTP的上传操作,只需要加上登录凭据并调用对应的上传方法就行。
直接上传文本框内容(无需本地保存)
因为你已经把编辑后的内容放在了textBox里,最直接的方式就是用UploadString方法直接上传字符串内容,不用先保存到本地文件:
// 注意这里要改成FTP协议的地址,不是http string ftpTargetUrl = "ftp://www.webite.xx.xx/text.txt"; string ftpUsername = "你的FTP用户名"; string ftpPassword = "你的FTP密码"; using (System.Net.WebClient webClient = new System.Net.WebClient()) { // 设置FTP登录的凭据,没有权限的话无法上传 webClient.Credentials = new System.Net.NetworkCredential(ftpUsername, ftpPassword); try { // 上传textBox中的编辑内容,会直接覆盖原文件 webClient.UploadString(ftpTargetUrl, textBox.Text); MessageBox.Show("文件上传成功!"); } catch (Exception ex) { // 捕获异常方便排查问题 MessageBox.Show($"上传出错啦:{ex.Message}"); } }
如果需要先保存本地再上传
要是你习惯先把编辑后的内容保存到本地文件,也可以用UploadFile方法:
// 先把textBox内容保存到本地临时文件 string localFilePath = @"C:\temp\edited_text.txt"; System.IO.File.WriteAllText(localFilePath, textBox.Text); using (System.Net.WebClient webClient = new System.Net.WebClient()) { webClient.Credentials = new System.Net.NetworkCredential(ftpUsername, ftpPassword); try { webClient.UploadFile(ftpTargetUrl, localFilePath); MessageBox.Show("文件上传成功!"); } catch (Exception ex) { MessageBox.Show($"上传出错啦:{ex.Message}"); } }
几点注意事项
- 一定要把地址改成
ftp://开头的FTP协议地址,不能用之前下载的http地址哦 - 确认你的FTP账号拥有目标文件所在目录的写入权限,不然会触发权限错误
UploadString和UploadFile都会直接覆盖目标路径的原文件,如果需要保留原文件,得先修改上传的文件名
内容的提问来源于stack exchange,提问作者Johnliverpool
相关产品推荐
相关产品推荐

