Qt 5에서 일하고 있으며 멀티 파트 업로드로 고생 중입니다. 내 uploadReply() 슬롯 바로 답장 인쇄 후QHttpMultiPart : PHP 스크립트에 파일 올리기
QUrl testUrl("http://localhost/upload/test.php");
QNetworkRequest request(testUrl);
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
QString preview_path = "C:/preview.jpg";
QHttpPart previewPathPart;
previewPathPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"preview_path\""));
previewPathPart.setBody(preview_path.toLatin1());
QHttpPart previewFilePart;
previewFilePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
previewFilePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"preview_file\""));
QFile *file = new QFile(preview_path);
if (!file->exists()) {
emit error(tr("Upload Error. File does not exist: ") + preview_path);
return;
}
file->open(QIODevice::ReadOnly);
previewFilePart.setBodyDevice(file);
file->setParent(multiPart); // we cannot delete the file now, so delete it with the multiPart
multiPart->append(previewPathPart);
multiPart->append(previewFilePart);
reply = networkManager->post(request, multiPart);
multiPart->setParent(reply); // delete the multiPart with the reply
connect(reply, SIGNAL(finished()),
this, SLOT (uploadReply()));
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
this, SLOT (uploadError(QNetworkReply::NetworkError)));
connect(reply, SIGNAL(uploadProgress(qint64, qint64)),
this, SLOT (uploadProgress(qint64, qint64)));
: 내가 업로드 스크립트를 만든
QString data = (QString) reply->readAll();
qDebug() << data;
을 가능하고 실행하는 것만 큼 간단 내 스크립트 docs 가능한 한가에 가까운입니다 Apache/2.2.21 및 PHP 5.3.8의 XAMPP 내 upload_max_filesize와 post_max_size는 1000M입니다.
echo "preview_path: " . (isset($_POST['preview_path']) ? $_POST['preview_path'] : "not set") . "\r\n";
echo "preview_file exists: " . (isset($_POST['preview_file']) ? "true" : "false"). "\r\n";
echo '$_FILES: ';
print_r($_FILES);
echo "preview_file content: " . $_POST['preview_file'];
내 진행 슬롯에는 대략 업로드되는 바이트 수가 표시됩니다.
그러나 출력 쇼 : 바이트 같은
preview_path: C:/preview.jpg
preview_file exists: true
$_FILES: Array
(
)
preview_file content: ????
것 같다 변수 $ _POST 오히려 $ _file보다 그들이해야대로로 제출되고있다? 아파치 로그에 오류가 없습니다. 어떻게 디버깅 할 수 있습니까?
내 PHP는이 말한다? –