在 C# 中使用 FTP 上传文件:无法确定 URI 的格式

2024-02-02

我正在尝试用 C# 中的 ftp 上传文件。目前,我尝试在本地进行:

static void Main(string[] args)
{
    UploadFileToFtp("C:\\Utilisateurs\\arnaud\\Bureau\\yhyhyyh.rtf","root","root");
}

public static void UploadFileToFtp(string filePath, string username, string password)
{
    var fileName = Path.GetFileName(filePath);
    var request = (FtpWebRequest)WebRequest.Create("127.0.0.1/" + fileName);<---ERROR

    request.Method = WebRequestMethods.Ftp.UploadFile;
    request.Credentials = new NetworkCredential(username, password);
    request.UsePassive = true;
    request.UseBinary = true;
    request.KeepAlive = false;

    using (var fileStream = File.OpenRead(filePath))
    {
        using (var requestStream = request.GetRequestStream())
        {
            fileStream.CopyTo(requestStream);
            requestStream.Close();
        }
    }

    var response = (FtpWebResponse)request.GetResponse();
    Console.WriteLine("Upload done: {0}", response.StatusDescription);
    response.Close();
}

我收到以下错误:(见上文)无法确定 URI 的格式

感谢您的帮助


我认为你缺少协议:应该是ftp://127.0.0.1/代替127.0.0.1/。此外,我建议您对存储在中的 url 部分进行编码filePath. f.e:

var encoded = HttpUtility.UrlEncode(filePath);
var request = (FtpWebRequest)WebRequest.Create("ftp://127.0.0.1/" + encoded)

你需要参考一下系统.Web组装使用UrlEncode. More here http://msdn.microsoft.com/pl-pl/library/4fkewx0t%28v=vs.110%29.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C# 中使用 FTP 上传文件:无法确定 URI 的格式 的相关文章

随机推荐

  • 用于本地化的流畅 NHibernate 映射

    我正在尝试从 NHibernate 映射构建数据库 但遇到了问题 我有许多具有本地化字符串值的类 public class MyClass1 public virtual int Id get set public virtual Shor
  • 如何创建私有类方法?

    这种创建私有类方法的方法是如何工作的 class Person def self get name persons name end class lt lt self private def persons name Sam end end
  • Dart 异常:已经为元素 x 注册了(聚合物)原型

    我有两个共享相同飞镖文件的聚合物元件 在 dart 文件中 我声明了两个 PolymerElement 类 直到聚合物 0 15 0 1 都工作正常 我已将项目更新为聚合物 0 15 1 现在出现此异常 Exception Already
  • 函数参数过多

    我从我的头文件中收到此错误 too many arguments to function void printCandidateReport 我对 C 相当陌生 只需要一些正确方向的指导来解决此错误 我的头文件如下所示 ifndef CAN
  • 如何在`Axios.interceptors.request`的配置中获取Cookies的`csrftoken`?

    我怎样才能得到饼干csrftoken in Axios interceptors request的配置 Axios interceptors request use config gt if config method post confi
  • 使用 GWT 编译器将 Java 转换为 JavaScript

    我写了一些 Java 代码 想将其转换为 JavaScript 我想知道是否可以使用GWT编译器将提到的Java代码编译为JavaScript代码保留所有名字方法 变量和参数 我尝试使用 draftCompile 关闭代码优化来编译它 但方
  • 以明文显示的 IIS 应用程序池身份帐户密码

    当我使用appcmd list apppool
  • 删除时触发将行插入到另一个表中

    我正在尝试创建一个触发器 它将包含所有列的行插入到另一个表中 这是我到目前为止所得到的 但它不起作用 delimiter CREATE TRIGGER item deleted move AFTER DELETE ON item begin
  • 在php中将时间戳转换为之前的时间?

    我知道这个问题已经被问过好几次了 我发现了很多关于在 php 中将时间戳转换为之前时间的教程 博客文章 我尝试了无数的代码 但似乎没有什么对我有用 我要么得到一个没有错误的空白页面 我的 php 页面上重新发布时出错 要么在我的页面中得到一
  • 如何在 Flutter 上使用 SignalR?

    我正在尝试与使用 SignalR 建立聊天通信的 Asp Net core 2 1 应用程序进行通信 但我无法弄清楚使用 flutter 实现这一目标的最佳方法是什么 我已经搜索了一些库来做到这一点 但我发现的库与 Flutter 不兼容
  • 避免多个ajax请求

    我试图避免向工厂中的服务器发出多个 ajax 请求 我已经添加了一个小型缓存服务 但这还不足以实现我的目标 在服务器响应之前可以多次调用该工厂 从而导致向服务器生成多个请求 为了避免这种情况 我添加了第二个 Promise 对象 如果 AJ
  • 如何将两个 SSE 寄存器加在一起

    我有两个 SSE 寄存器 128 位是一个寄存器 我想将它们相加 我知道如何在其中添加相应的单词 例如我可以这样做 mm add epi16如果我在寄存器中使用 16 位字 但我想要的是类似的东西 mm add epi128 不存在 它将使
  • 重置索引后无法过滤索引列中包含特定值的行

    我正在组织多个计划的数据 其中包含计划阶段的信息 P 初步 或F 最终 我正在使用中显示的方法examples https pandas pydata org pandas docs stable generated pandas Data
  • 如何在react-leaflet中制作一个椭圆形?

    我正在尝试在使用制作的地图上绘制一个椭圆react leaflet 它内置了对圆形和矩形的支持 为了实现这一点 我使用代码在 非反应 中生成一个椭圆leaflet from here https github com jdfergason
  • 在移动设备上,执行其他操作几分钟后,localStorage 就会被删除

    仅当我在 iPhone 5S iOS 12 5 2 和 LG Android 手机上运行渐进式 React Web 应用程序时 才会出现此问题 它通过 Mobile Chrome 和 Mobile Safari 来实现此目的 我的 Macb
  • 如何生成与数据库记录匹配的唯一 URL 变量?

    我希望能够生成这样的 URL 变量 http example com 195yq http example com 195yp http example com 195yg http example com 195yf 这些变量将与 MyS
  • TypeScript - 从通用联合类型缩小类型

    Type declaration interface TickListFilter type tickList value string interface ColorFilter type color value ColorValueTy
  • AngularJS 控制器和方法

    我是 angularjs 的初学者 有一些关于控制器的问题 这是我的示例控制器 function exampleController scope scope sampleArray new Array scope firstMethod f
  • mongodb客户端findOne()在node中排序

    我正在使用 Lambda 和 Node js 在 AWS 中构建一个无服务器应用程序 我目前在 mLab 有一个 MongoDB 我试图根据 ISODate 字符串获取 最新 记录 使用 findOne 或 find w limit 1 它
  • 在 C# 中使用 FTP 上传文件:无法确定 URI 的格式

    我正在尝试用 C 中的 ftp 上传文件 目前 我尝试在本地进行 static void Main string args UploadFileToFtp C Utilisateurs arnaud Bureau yhyhyyh rtf r