Ошибка Указанный формат пути не поддерживается C # - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь загрузить файл через ftp с помощью C #, но я искал на других форумах и здесь, но пока у меня ничего не получалось

Указанный формат пути не поддерживается

Код:

[HttpPost]
    public ActionResult Guardar_registro(Models.CascadingModelLevantamiento model, HttpPostedFileBase file)
    {
      var NombreArchivo = Path.GetFileName(file.FileName);
      string name = Path.Combine("" + NombreArchivo);
      string ftpfullpath = Path.Combine(@"ftp://xxx.xxx.xx.xx:xx" + @"/test/" + name);
      FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
      ftp.Credentials = new NetworkCredential("xxx@xx.com", "xxx");
      ftp.KeepAlive = true;
      ftp.UseBinary = true;
      ftp.Method = WebRequestMethods.Ftp.UploadFile;
      FileStream fs = System.IO.File.OpenRead(ftpfullpath);
      byte[] buffer = new byte[fs.Length];
      fs.Read(buffer, 0, buffer.Length);
      fs.Close();
      Stream ftpstream = ftp.GetRequestStream();
      ftpstream.Write(buffer, 0, buffer.Length);
      ftpstream.Close();
 }

Я что-то новое в этом, если кто-то может мне помочь

С уважением

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

То, что идет к File.OpenRead, должно быть допустимым локальным (Windows) путем. Не FTP URL.

Что-то вроде

string filename = System.IO.Path.Combine(@"C:\local\path", NombreArchivo);
FileStream fs = System.IO.File.OpenRead(filename);

Хотя, как правильно прокомментировано в другом ответе, гораздо проще использовать WebClient.UploadFile.

См. Загрузка файла и загрузка файла с FTP .

0 голосов
/ 11 октября 2019

Не изобретайте велосипед, попробуйте что-то вроде этого:

using (var client = new WebClient())
{
    client.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
    client.UploadFile("ftp://host/path.zip", WebRequestMethods.Ftp.UploadFile, localFile);
}

Ссылка на ресурс: WebClient

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...