- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试使用QNetworkRequest将文件上传到服务器时遇到了一些问题。我一直将这个链接(http://qt-project.org/forums/viewthread/11361)用作模板,但是仍然收到POST错误(具体为203)。到目前为止,这就是我所拥有的。
void MainWindow::processFile(){
QByteArray postData;
//Look below for buildUploadString() function
postData = mReport->buildUploadString();
QUrl mResultsURL = QUrl("http://" + VariableManager::getInstance()->getServerIP() + "/uploadFile.php");
QNetworkAccessManager* mNetworkManager = new QNetworkAccessManager(this);
QString bound="margin"; //name of the boundary
QNetworkRequest request(mResultsURL); //our server with php-script
request.setRawHeader(QString("Content-Type").toAscii(),QString("multipart/form-data; boundary=" + bound).toAscii());
request.setRawHeader(QString("Content-Length").toAscii(), QString::number(postData.length()).toAscii());
connect(mNetworkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(printScriptReply(QNetworkReply*))); //This slot is used to debug the output of the server script
mNetworkManager->post(request,postData);
}
QByteArray ReportParser::buildUploadString()
{
QString path = VariableManager::getInstance()->getReportDirectory();
path.append("\\\\");
path.append(getReportFileName());
QString bound="margin";
QByteArray data(QString("--" + bound + "\r\n").toAscii());
data.append("Content-Disposition: form-data; name=\"action\"\r\n\r\n");
data.append("uploadFile.php\r\n");
data.append(QString("--" + bound + "\r\n").toAscii());
data.append("Content-Disposition: form-data; name=\"uploaded\"; filename=\"");
data.append(getReportFileName());
data.append("\"\r\n");
data.append("Content-Type: text/xml\r\n\r\n"); //data type
QFile file(path);
if (!file.open(QIODevice::ReadOnly)){
qDebug() << "QFile Error: File not found!";
return data;
} else { qDebug() << "File found, proceed as planned"; }
data.append(file.readAll());
data.append("\r\n");
data.append("--" + bound + "--\r\n"); //closing boundary according to rfc 1867
file.close();
return data;
}
<?php
$uploaded_type = $_FILES['uploaded']['type'];
$target = "/var/www/webpage/results/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
echo "target: ";
echo $target;
//This is our limit file type condition
if ($uploaded_type =="text/xml"){
echo "We have an xml file!\r\n";
}
//Here we check that $ok was not set to 0 by an error
//If everything is ok we try to upload it
if ($ok==0){
echo "Sorry your file was not uploaded";
} else {
echo "Looking good!";
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)){
echo "The file successfully ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
} else {
echo "Sorry, there was a problem uploading your file.";
}
}
?>
最佳答案
问题是网络上的数据包丢失。上面的代码实际上有效。
关于qt - 使用Qt QNetworkRequest上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16735595/
我在 QNetworkRequest 的文档中找到了 QNetworkRequest::User 和 QNetworkRequest::UserMax ,但根据找到的解释,我无法理解每一个的含义。 每
我正在使用 Qt 与 GraphQL 主机交互。我正在使用 QNetworkRequest,登录过程完成得很好,给了我一个 JSON 格式的 token。从那时起,GraphQL 期望 token 位
我想测试对网络服务器的异步请求。为此,我正在创建一个简单的单元测试来快速尝试几行代码: void AsynchronousCall::testGet() { QNetworkAccessMan
我试图获取网页的内容,所以我解析了所有的 div 并创建了一个文本文件,这里是我的起始代码, #include #include #include
我有一个 Qt 应用程序,我在 Windows 7 x64 SP1 下使用 Qt 4.8.1 进行部署,但使用 32 位编译。该应用程序使用 QNetworkAccessManager、QNetwor
我必须使用 post 到 google 脚本(见下文),我希望在脚本的末尾收到反馈,表明一切正常。 function doPost(e){ var idm = e.parameter.idm;
有什么方法可以在客户端调用 QNetworkAccessManager::post(QNetworkRequest,QByteArray) 期间(或之后)查看将发送(或已经发送)的数据? 换句话说,我
如何阻止 QNetworkRequest 在 put/post 到 HTTPS 连接期间缓冲 QIODevice 的全部内容?发布到 HTTP 时它工作正常,但 HTTPS 导致在发布开始之前将整个文
我有一段在 4.8 中工作的代码,但现在我需要将它移植到 Qt5 (beta2) 这是应该发生的事情: 我想将一些数据发布到网络服务器,网址应如下所示“http://server/actions.ph
我可以在 C# 中轻松获得异步设计 HttpResponseMessage response = await httpClient.GetAsync(InputAddress.Text); {
我需要在 QNetworkRequest 中附加多个 header 请求。我怎样才能做到这一点? 例如下面是我的 URL 和所需的 header : www.abc.com?identifier=13
我正在使用以下代码向服务器发出 HTTPS 请求。 QNetworkRequest request; //request.setSslConfiguration(QSslConfiguration::
我需要与需要本地证书(.crt 文件)的服务器交换数据。我试试这个: loginRequest = QNetworkRequest(QUrl("https://somesite.com/login")
我想用 Qt 构建自定义 SOAP-Request。对于我的特定 SOAP 操作数据包,我需要删除自动出现在 QNetworkrequest 中的 Accept-Language header 。 拥
我的 Qt 小部件应用程序中有一个 QWebView 组件。我已经创建了一个网络管理器来处理来自 QWebView 的请求。 我想做的是在 QWebView 中捕获网络表单的值,到目前为止,我有每个网
我有一个 QWebView,我创建了一个 QNetworkDiskCache 并设置了它。现在我想确保所有 QNetworkRequests 总是使用 PreferCache 而不是 PreferNe
我一直在努力使 Twitter API 的应用程序唯一身份验证在 Qt 上工作。当我运行我的代码时,出现此错误: Failure "Error transferring https://api.twi
我正在使用以下函数发出发布请求: bool NewAccountDialog::verifyAccount() { QString loginURL = "https://accounts.c
我最近开始了对大约 2 个月前编写的大型单片音频播放器应用程序进行模块化的繁琐过程。 这个过程进行得相当顺利,尽管其中一种方法(ScrobbleMedia - 可以预见的是它会发出 HTTP 请求以将
我正在尝试连接到 gmail 并使用 atom 文件。我对包含 !#$%^&* 字符的密码有疑问。 pNetworkManager = new QNetworkAccessManager(th
我是一名优秀的程序员,十分优秀!