Subir imágenes a un servidor

Iniciado por sexto, 12 Marzo 2011, 14:40 PM

0 Miembros y 1 Visitante están viendo este tema.

sexto

Tengo que hacer un proyecto que consiste en una web en PHP y un programa en C# (Formularios, no web) integrados.

Es decir, que tanto desde la web como desde el programa puedo acceder a ver los datos, modificarlos, añadirlos, borrarlos... etc.

Mi problema viene a la hora de subir imágenes al servidor. Desde la web en PHP (que ya está terminada) no hay problema, pero desde C# no se como hacerlo. Teniendo en cuenta de que la web está en el servidor pero el programa en C# está en el cliente... Como puedo hacerlo?

Solo necesito subir imágenes, el tema de acceder a la base de datos y todo eso ya lo tengo hecho.
Por cierto, quiero subir imágenes a un directorio del servidor, NO a la base de datos.


Gracias, un saludo.

SRVAM

http://msdn.microsoft.com/es-es/library/system.net.webclient%28VS.80%29.aspx

es como hacer un clienteFTP con C#, ahi tienes ese enlace a la clase que tienes que usar.

si le preguntas a San Google, patron de los que quieren adquirir conocimientos, podras encontrar mas de un ejemplo de cliente ftp en C# ;)

saludos!!
C# Programmer

-Estudiante MCTS .NET Framework 3.5-

sexto

No lo consigo, me da error 404.
Este es mi código:


private void button2_Click(object sender, EventArgs e)
        {
            String uriString = "mi URL";

            WebClient myWebClient = new WebClient();
            string fileName = tbPortada.Text;

            byte[] responseArray = myWebClient.UploadFile(uriString, fileName);
        }


Obvimente en "mi URL" no pone eso, pone la URL del directorio dónde quiero guardar el archivo.


SRVAM

mm... prueba utilizando la clase FtpWebRequest, antes me hice un lio y te dije la otra, pero la que yo utilice para mi clienteFTP es esta que te he dicho ahora. aqui te pongo un ejemplo de como subir un archivo a tu ftp utilizando esta clase, si no te va dime que error te da y lo solucionamos

Código (csharp) [Seleccionar]

        String ftpServerIP = "tuDireccionFtp";
        String ftpUserID = "user";
        String ftpPassword = "pass";

public void upload(String rutaArchivo)
        {
            FileInfo fileInf = new FileInfo(rutaArchivo);
            string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
            FtpWebRequest reqFTP;

            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));
            reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
            reqFTP.KeepAlive = false;
            reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
            reqFTP.UseBinary = true;
            reqFTP.ContentLength = fileInf.Length;

            int buffLength = 4048;
            byte[] buff = new byte[buffLength];
            int contentLen;

            FileStream fs = fileInf.OpenRead();

            try
            {
                Stream strm = reqFTP.GetRequestStream();

                contentLen = fs.Read(buff, 0, buffLength);

                while (contentLen != 0)
                {
                    strm.Write(buff, 0, contentLen);
                    contentLen = fs.Read(buff, 0, buffLength);
                }

                strm.Close();
                fs.Close();

            }
            catch (Exception ex)
            {
                label1.Text = ex.Message;
            }
        }
C# Programmer

-Estudiante MCTS .NET Framework 3.5-

.::IT::.

Simplemente .::IT::.

sexto

Ya lo he conseguído gracias a una especie de variación del código de SRVAM.

Muchas gracias.

[D4N93R]

Tanto la solución de SRVAN como la de IT son válidas. Ftp es una buena solución y un webservice también.

Aunque personalmente yo lo hubiese hecho con un Webservice porque es mucho más fácil, mantenible y reusable.

Un saludo!

SRVAM

si, un webservice es una forma mas limpia de hacerlo, pero no se hacer un webservice en php asi que me decante por el ftp xDD

ya puestos con el tema, varia mucho el hacer un webservice en php de hacerlo en .net??
C# Programmer

-Estudiante MCTS .NET Framework 3.5-

[D4N93R]

Más o menos, depende de cómo lo hagas, en .Net nativamente tienes muchas formas, al estilo php, WebMethods o WCF.

Un saludo!

SRVAM

Cita de: [D4N93R] en 16 Marzo 2011, 20:27 PM
Más o menos, depende de cómo lo hagas, en .Net nativamente tienes muchas formas, al estilo php, WebMethods o WCF.

Un saludo!

jaja me entendiste al reves xDD se hacerlos en .NET pero no en php jajaja xDD
C# Programmer

-Estudiante MCTS .NET Framework 3.5-