PDA

Ver la Versión Completa : Error en upload con NMFTP


MichelH
26-01-2008, 01:25:56
Hola que tal espero me puedan dar una ayuda, les agradeceria mucho.

Estoy haciendo un sistema para poder actualizar la imagenes de un sitio web desde ftp.

Cuando se conecta la servidor todo bien, luego con upload subo un archivo de texto y todo sigue bien, el problema es cuando subo la imagen no se sube correctamente, y aunque no marca ningun error, simplemente la imagen no se visualiza, al entrar en la pagina se puede ver que imagen si esta fisicamente pero al descargarla y abrirla dice que error en la imagen, osea el archivo esta corrupto.

codigo:
try NMFTP1.Upload( gPathData + '\textlisthome.php', 'textlisthome.php' ); except end; <---- ese archivo se sube correctamente
try NMFTP1.Upload( gPathData + '\noticia1.jpg', 'noticia1.jpg' ); except end; <---- ese archivo se sube pero al visualizarlo es corrupto

Espero me haya explicado, gracias.

dec
26-01-2008, 10:54:41
Hola,

No es que esté muy puesto en el tema, pero, si no me equivoco, el protocolo FTP permite transferir archivos de texto y binarios, y lo hace por separado, debiendo especificarse qué tipo de archivo se va a transferir. Supongo que el componente que usas tendrá la opción de especificar si se envía un archivo de un tipo u otro. Puede que por ahí vayan los tiros: la imagen se envía "como texto", cuando en realidad es un "archivo binario".

MichelH
26-01-2008, 18:49:49
Gracias Dec,

Consultandolo con mi almoada algo asi me imagine, pero ahora no tengo idea de cómo especificar que es archivo binario.

Espero alguien me pueda asesorar.

De nuevo gracias Dec, tu respuesta me ayudo a entender mas mi problema.

MichelH
26-01-2008, 19:36:19
Problema resuelto.
Realmente el problema era que no conocia utilizar bien esta herramienta y despues de que Dec confirmara mis sospechas encontre el Procedimiento Mode del mismo componente NMFTP, asi que antes de empezar a subir imagenes solo tengo que poner lo siguiente:

NMFTP1.Mode( MODE_IMAGE );

Si quiero despues seguir subiendo texto:

NMFTP1.Mode( MODE_ASCII );

Y Para cuanquier otro archivo binario:

NMFTP1.Mode( MODE_BYTE );

Ahi esta por si alguna vez a alguien se le presenta la misma situacion q a mi.

Saludos!!!

dec
26-01-2008, 20:16:06
Hola,


Ahi esta por si alguna vez a alguien se le presenta la misma situacion q a mi.


Seguro que puede ser útil. ¡Gracias! ;)