Como usar FTP
Hola, estoy empezando a trabajar con qt, y desearia ayuda o informacion acerca del uso de ftp con qt creator, he intentado usar la informacion que viene en la documentacion de qt pero no he logrado hechar a andar ningun programa de ftp, espero me puedan ayudar.


FTP
busca aqui en este foro QNetworkReply he posteado el codigo ahi veraz todo lo que necesitas trabaja muy bien
ftp
pues la verdad probe y nada
lo solucione utilizando las clases que dice ahi en la documentacion
QNetworkAccessManager,QNetworkReply,QNetworkRequest
mira y si algo te posteo algo de codigo
ftp
me puse a analizar para no quedarme con la duda y ya funciona
lo que pasa es que el baja el archivo de forma asincronica lo que debes hacer es lo siguiente
ah y debes colocar en el constructor de la clase
todo esto en el cpp. y en el .h
Gracias
Hola amigo, muchas gracias tu codigo me ha servido, por fin he podido bajar el archivo, realmente te lo agradesco, ya me habia deseperado, solo unas preguntas mas, si me podrias explicar que hace tu funcion ftpDone, no entiendo muy bien el qdebug, me marcaba error al ejecutarlo en el qtcreator, pero lo puse como comentario y funciono bien, y tambien el signal done, y si seria este codigo semejante para que yo envie un archivo a un servidor ftp que en este caso podria ser alguna direccion de mi compu.
Disculpa por las molestias amigo, y muchas gracias otra vez.
ftp
ok estamos para ayudarnos asi tambien aprendemos,
bueno mira si te lees la documentación dice algo así como que
void QFtp::done ( bool error ) [signal]
que done es una señal de QFtp
Esta señal se emite cuando el comando pendiente ha terminado, es decir, cuando termina de bajar el archivo (que se emite después de la última orden de commandFinished () de la señal). el error es verdadero(true) si ocurre un error durante el proceso, de lo contrario el error es falso.
el qDebug() es para que me muestre en la pestaña de aplicación output lo que pasa o los valores que lleva por ejemplo una variable etc.
para enviar si seria parecido pero la funcion no seria get si no put hechale una leida a todas las funciones y señales de la ayuda ni no puedes con el ingles traducelo en google
saludos y muchos exitos
enviar a ftp
Hola amigo, molestando nuevamente, he estado intentando enviar por ftp, pero tengo algunas dudas con ls funcion put, quisiera saber mas que nada que es el QIODevice, ya que es una variable que pide la funcion, en este caso que tendria que poner ahi, y otra duda seria en el caso de enviar un archivo txt, tendria que leer el archivo linea por linea y con cada linea irla subiendo o como lo haria, disculpa por las molestias de nuevo. gracias
put ftp
es igual a lo que hiciste demaciado facil googleando un poco lo hubieras encontrado
de todas formas te coloco el ejemplo
bool putFile::putFile(const QString file)
{
QMessageBox msgBox;
QString fileName="install.exe";
ftp->connectToHost("tu host");
if (!ftp->login("usuario","usuario")){
qDebug()<<"no conect";
return false;
}
QFile *fileftp = new QFile( fileName );
QFileInfo fi( fileName );
ftp->put(fileftp,"install.exe", QFtp::Binary);
return true;
}
lo mismo que en el anterior ejemplo te hablo de el ejemplo anterior
te hablo de las funciones done y dataTransferProgress
saludos estamos para servir a todos
buen dia
gracias
Gracias amigo por tu pronta respuesta, lo voy a chekar y te comento, gracias nuevamente.
QFtp es "asíncrono"
Hola.
Yo también me he peleado bastante con el QFtp.
Lo que me costó entender es que las llamadas tipo
ftp->connectToHost("ftp.mydominio.com"); ftp->login(); etcson llamadas asíncronas. Es decir lo ideal sería/es esperar a que cada llamada termine antes de hacer la siguiente, y la forma de hacerlo es, probablemente con la usando la señal commandFinished.
Salud.
ftp asinconp
lo mismo pensé yo pero la verdad si conectas esa señal y pones un qDebug()<<"algo";
notaras que mientras el archivo esta bajando pasa por ahí a todo momento, lo que puedes hacer,
es conectar la señal dataTransferProgress con un progress dialog, es algo así en el archivo .h
private:
QProgressDialog *progressDialog;
public slots:
void dataTransferProgress ( qint64 done, qint64 total );
luego en el archivo .cpp en el constructor colocas esto.
connect(ftp,SIGNAL(dataTransferProgress(qint64,qint64)),this,SLOT(dataTransferProgress(qint64,qint64)));
progressDialog = new QProgressDialog();
y por ultimo el slot (ojo esto es por fuera del constructor)
void getFtpFile::dataTransferProgress(qint64 done, qint64 total)
{
progressDialog->setMaximum(total);
progressDialog->setValue(done);
}
de esta forma te mostrara el progreso de descarga no estoy seguro pero creo que es asi
saludos
ftp
postea tu codigo yo miro que tienes mal
ftp
Hola amigo, disculpa la tardanza de la respuesta, mira te pongo mi codigo:
Estoy haciendo el ejemplo simple de la documentacion, se supone que debe descargar un archivo cuando aprieto un boton, pero no hace nada, estoy usando qt creator. espero tu me puedas ayudar, gracias.
ftp
hola
lo que quieres es hacer un programa que se conecte y bajar archivos o que real mente?
en la pagina http://qt-apps.org/ hay algunos desarrollados
ftp
sip quiero hacer un programa que haga lo que me dices, como mensionaba he intentado hacer los ejemplos que vienen en la doc pero no logro haceros funcionar, si pudieras explicarme como hacerlo te lo agradeceria.