我需要在端口22上使用ssh2协议在服务器上上传图像文件。使用QNetworkAccessManger的SSH2协议在Google上也不受欢迎。这是我的代码。
QUrl uploadUrl("ssh2://192.168.10.227/var/www/html/img/"+mImgFile);
uploadUrl.setUserName("xxxxxx");
uploadUrl.setPassword("xxxxxx");
uploadUrl.setPort(22);
qDebug() << uploadUrl.toString();
QNetworkRequest uploadReq(uploadUrl);
mReply = mNetworkManager->put(uploadReq, &file);
connect(mReply, SIGNAL(uploadProgress(qint64, qint64)), this, SLOT(uploadProgress(qint64, qint64)));
使用URL-scheme作为&#34; ssh2&#34;或&#34; sftp&#34;或&#34; ssh2.sftp&#34 ;;它输出协议未知。我使用奇怪的&#34; ssh2.sftp&#34;的原因是here(just a little php code to view)。
我想知道ssh2是否可以与qnetworkaccessmanager一起使用?如果是,上传图像文件的URL格式是什么?
答案 0 :(得分:2)
Qt中没有SSH支持,例如参见 Howto implement SFTP with Qt/QNetworkAccessManager (C++)和How to easily establish an SSH connection in Qt?
QNetworkAccessManager
中支持的URL方案列表可以通过QNetworkAccessManager::supportedSchemes()
获取,默认Qt版本为("ftp", "file", "qrc", "http", "https", "data")
(仅当找到外部OpenSSL库时才支持https
,因为它也不提供Qt)。
因此,仍然需要使用外部C库libssh2来使用本机套接字来使用SSH2协议。