Пытаюсь загрузить файл на FTP-сервер с C #. Файл загружен, но без байтов.
private void button2_Click(object sender, EventArgs e)
{
var dirPath = @"C:/Documents and Settings/sander.GD/Bureaublad/test/";
ftp ftpClient = new ftp("ftp://example.com/", "username", "password");
string[] files = Directory.GetFiles(dirPath,"*.*");
var uploadPath = "/httpdocs/album";
foreach (string file in files)
{
ftpClient.createDirectory("/test");
ftpClient.upload(uploadPath + "/" + Path.GetFileName(file), file);
}
if (string.IsNullOrEmpty(txtnaam.Text))
{
MessageBox.Show("Gelieve uw naam in te geven !");
}
}
c#
.net
file-upload
ftp
Webvision
источник
источник
Ответы:
Существующие ответы верны, но зачем заново изобретать колесо и возиться с
WebRequest
типами более низкого уровня, когдаWebClient
уже аккуратно реализуется загрузка по FTP:источник
Как пользоваться
используйте это в своем foreach
и вам нужно создать папку только один раз
создать папку
источник
request.GetResponse()
. Без него загрузка (по праву) не будет работать на некоторых серверах. См. Как: загрузка файлов с помощью FTP .Самый простой способ
Самый простой способ загрузить файл на FTP-сервер с помощью .NET framework - это использовать
WebClient.UploadFile
метод :Расширенные опции
Если вам нужен больший контроль,
WebClient
которого нет (например, шифрование TLS / SSL , режим ASCII, активный режим и т. Д.), ИспользуйтеFtpWebRequest
. Простой способ - просто скопироватьFileStream
в поток FTP, используяStream.CopyTo
:Мониторинг прогресса
Если вам нужно следить за ходом загрузки, вы должны сами скопировать содержимое по частям:
Информацию о прогрессе графического интерфейса (WinForms
ProgressBar
) см. В примере C # по адресу:Как показать индикатор выполнения для загрузки с помощью FtpWebRequest
Папка загрузки
Если вы хотите загрузить все файлы из папки, см.
Раздел Загрузка каталога файлов на FTP-сервер с помощью WebClient .
Информацию о рекурсивной загрузке см. В разделе
Рекурсивная загрузка на FTP-сервер в C #.
источник
Для меня работает следующее:
Вы не можете прочитать параметр отправки файла в своем коде, поскольку это только имя файла.
Используйте следующее:
Чтобы получить файл и передать его
Send
методу.источник
источник
В первом примере необходимо изменить их на:
Первый флеш, а потом закрытие.
источник
Это работает для меня, этот метод будет SFTP-файл для местоположения в вашей сети. Он использует библиотеку SSH.NET.2013.4.7, ее можно просто скачать бесплатно.
источник
дата публикации: 26.06.2018
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/how-to-upload-files-with-ftp
источник
Я заметил, что -
Я подготовил способ, который работает так, вы можете заменить значение переменной ftpurl параметром TargetDestinationPath. Я тестировал этот метод в приложении winforms:
Дайте мне знать в случае возникновения каких-либо проблем, или вот еще одна ссылка, которая может вам помочь:
https://msdn.microsoft.com/en-us/library/ms229715(v=vs.110).aspx
источник