Intento subir un archivo a un servidor FTP con C #. El archivo se carga pero con cero bytes.
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
fuente
fuente
Respuestas:
Las respuestas existentes son válidas, pero ¿por qué reinventar la rueda y molestarse con
WebRequest
tipos de nivel inferior mientrasWebClient
ya implementa la carga FTP de manera ordenada?fuente
Cómo utilizar
usa esto en tu foreach
y solo necesitas crear una carpeta una vez
para crear una carpeta
fuente
request.GetResponse()
. Sin él, la carga no funcionará (legítimamente) en algunos servidores. Consulte Cómo: cargar archivos con FTP .La manera más fácil
La forma más trivial de subir un archivo a un servidor FTP usando .NET framework es usando el
WebClient.UploadFile
método :Opciones avanzadas
Si necesita un mayor control, que
WebClient
no ofrece (como cifrado TLS / SSL , modo ASCII, modo activo, etc.), utiliceFtpWebRequest
. Una forma fácil es simplemente copiarFileStream
a en una transmisión FTP usandoStream.CopyTo
:Seguimiento del progreso
Si necesita monitorear el progreso de una carga, debe copiar el contenido por partes usted mismo:
Para el progreso de la GUI (WinForms
ProgressBar
), vea el ejemplo de C # en:¿Cómo podemos mostrar la barra de progreso para cargar con FtpWebRequest?
Subiendo carpeta
Si desea cargar todos los archivos de una carpeta, consulte
Cargar directorio de archivos al servidor FTP mediante WebClient .
Para una carga recursiva, consulte
Carga recursiva al servidor FTP en C #
fuente
Lo siguiente funciona para mí:
No puede leer enviar el parámetro de archivo en su código, ya que es solo el nombre del archivo.
Utilice lo siguiente:
Para obtener el archivo para que pueda pasarlo al
Send
método.fuente
fuente
En el primer ejemplo debe cambiarlos a:
Primero enjuague y luego cierre.
fuente
Esto funciona para mí, este método enviará un archivo SFTP a una ubicación dentro de su red. Utiliza la biblioteca SSH.NET.2013.4.7. Uno puede descargarla gratis.
fuente
fecha de publicación: 26/06/2018
https://docs.microsoft.com/en-us/dotnet/framework/network-programming/how-to-upload-files-with-ftp
fuente
He observado que
He preparado un método que funciona así, puedes reemplazar el valor de la variable ftpurl con el parámetro TargetDestinationPath. Probé este método en la aplicación winforms:
Avísame en caso de cualquier problema, o aquí hay un enlace más que puede ayudarte:
https://msdn.microsoft.com/en-us/library/ms229715(v=vs.110).aspx
fuente