FileUpload ASPx con Ftp
Para subir ficheros a un ftp puedes usar fileupload.
1 2 3 4 |
<asp:FileUpload ID="FileUpload1" runat="server" AllowMultiple="true" /> <asp:Button Text="subir al Ftp" runat="server" OnClick="FTPUpload" /> <hr /> <asp:Label ID="label1" runat="server" /> |
Si te has fijado bien en este ejemplo marcamos que esta permitido subir multiples ficheros a la web.
si no deseas subir multiples ficheros establece AllowMultiple=”false”
Ahora vamos con la parte del botón muy facilita. lo dejo comentado para que puedas seguirlo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
Protected Sub FTPUpload(sender As Object, e As EventArgs) 'Direccion FTP. Dim ftp As String = "ftp://tuftp.com/" 'Directorio donde vas a subir los ficheros. Dim ftpFolder As String = "Subidas/" For Each file As HttpPostedFile In FileUpload1.PostedFiles Dim fileBytes As Byte() = Nothing 'Leemos los ficheros y creamos el array de bytes que seran escritos. Dim fileName As String = Path.GetFileName(file.FileName) Using fileStream As New StreamReader(file.InputStream) fileBytes = Encoding.UTF8.GetBytes(fileStream.ReadToEnd()) fileStream.Close() End Using Try 'LLamamos as webrequest de nuestro ftp y le indicamos que es subida de ficheros. Dim request As FtpWebRequest = DirectCast(WebRequest.Create(ftp & ftpFolder & fileName), FtpWebRequest) request.Method = WebRequestMethods.Ftp.UploadFile 'Asignamos las credenciales y el modo passivo o no request.Credentials = New NetworkCredential("username", "password") request.ContentLength = fileBytes.Length request.UsePassive = True request.UseBinary = True request.ServicePoint.ConnectionLimit = fileBytes.Length request.EnableSsl = False 'Escribimos los datos Using requestStream As Stream = request.GetRequestStream() requestStream.Write(fileBytes, 0, fileBytes.Length) requestStream.Close() End Using Dim response As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse) ' y al label le vamos pasando los ficheros almacenados lblMessage.Text &= fileName & " subido.<br />" response.Close() Catch ex As WebException Throw New Exception(TryCast(ex.Response, FtpWebResponse).StatusDescription) End Try Next End Sub |
Ya ves que facil.
seguramente te haga falta incorporar los imports siguientes
1 2 3 |
Imports System.IO Imports System.Net Imports System.Text |
Espero que te sirva. un Saludo