2013-07-19 172 views
2

我可以从服务器上下载,但我无法上传到它。它上传文件,但它是一个空文件。QNetworkAccessManager上传到本地FTP服务器

这基本上是我在做什么:

QString filename="Data.txt"; 
QFile file(filename); 
file.open(QIODevice::ReadWrite); 
file.write("HELLO") ; 

QUrl urlup("ftp://127.0.0.1/file.txt"); 
urlup.setPassword("123"); 
urlup.setUserName("user"); 
urlup.setPort(21); 
QNetworkAccessManager *nam = new QNetworkAccessManager; 
QNetworkRequest requp(urlup); 
nam->put(requp,&file); 
file.close(); 

,但它不工作;只是上传一个空文件。

回答

0

尝试file.flush();后写。

+0

仍然不起作用 – user2584587

+0

嗯,好可能是你应该寻求到文件的开头发送内容之前。上次尝试我的运气:) – kvv

+0

它的工作!你是神 – user2584587

1

代替127.0.0.1使用localhost

而不是setPort追加:PortNumber到URL。 (例如ftp://localhost:21

答案在此链接:Putting large size file on FTP using QNetworkAccessManager

+0

什么时候链接死了?请有空的时候,尽量*至少*复制这里的解释。如果你花时间扩展它,最好的办法是。这实际上花了我一段时间,我没有找到解释。 –

+0

@TomášZato链接中有一个示例,这里复制的时间太长。您只需复制问题中的代码并替换我提到的部分。 – user3220907