转载请注明出处:http://www.cnblogs.com/dachen408/p/8185060.html

qt5 上传图片到http服务器,亲测可以用,qt5.8+vs2015,直接上码;

头文件:

#ifndef UPDATEPICTEST_H
#define UPDATEPICTEST_H #include <QtWidgets/QMainWindow>
#include "ui_updatepictest.h" #include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QHttpMultiPart>
#include <QFile>
#include <QDataStream>
#include <QTextCodec> class UpdatePicTest : public QMainWindow
{
Q_OBJECT public:
UpdatePicTest(QWidget *parent = 0);
~UpdatePicTest(); private slots:
void slot_requestFinished();
void on_pushButton_clicked();
void upLoadError(QNetworkReply::NetworkError code);
void uploadProcess(qint64 bytesReceived, qint64 bytesTotal); private:
QNetworkAccessManager * m_pNetWorkManager = NULL; void testUpload(); QNetworkReply *reply; private:
Ui::UpdatePicTestClass ui;
}; #endif // UPDATEPICTEST_H

  cpp,

http://ip:port改为对应的服务器和端口号
#include "updatepictest.h"
#include <QDebug> UpdatePicTest::UpdatePicTest(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this); m_pNetWorkManager = new QNetworkAccessManager();
} UpdatePicTest::~UpdatePicTest()
{ } void UpdatePicTest::slot_requestFinished()
{
QByteArray resultContent = reply->readAll();
QTextCodec* pCodec = QTextCodec::codecForName("UTF-8");
QString strResult = pCodec->toUnicode(resultContent);
int nHttpCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();//http返回码 ui.textEdit->setPlainText(strResult);
ui.edt_code->setText(QString("%1").arg(nHttpCode));
} void UpdatePicTest::on_pushButton_clicked()
{
testUpload();
} void UpdatePicTest::upLoadError(QNetworkReply::NetworkError code)
{
qDebug() << code;
} void UpdatePicTest::uploadProcess(qint64 bytesReceived, qint64 bytesTotal)
{
qDebug() << bytesReceived << bytesTotal;
} void UpdatePicTest::testUpload()
{
QString path = ui.lineEdit->text().trimmed();
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
QHttpPart imagePart;
imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/png"));
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QString("form-data; name=\"%1\"; filename=\"%2\"").arg("offline.png").arg(path));
QFile *file = new QFile(path);
file->open(QIODevice::ReadOnly);
imagePart.setBodyDevice(file);
imagePart.setBodyDevice(file);
file->setParent(multiPart);
multiPart->append(imagePart); QNetworkRequest request(QUrl("http://ip:port")); reply = m_pNetWorkManager->post(request, multiPart);
multiPart->setParent(reply); connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(upLoadError(QNetworkReply::NetworkError)));
connect(reply, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(uploadProcess(qint64, qint64)));
connect(reply, SIGNAL(finished()), this, SLOT(slot_requestFinished())); }

  

qt5 上传图片到http服务器的更多相关文章

  1. kindeditor修改图片上传路径-使用webapi上传图片到图片服务器

    kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 在这里我着重介绍一些使用kindeditor修改图片上传路径并通过webapi上传图片到图片服务器的方案. 因为我使用的 ...

  2. kindeditor扩展粘贴图片功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  3. vue中使用vue-quill-editor及上传图片到自己服务器

    第一步,下载依赖 cnpm install vue-quill-editor --save 第二步,再main.js里引入组件(我这里是全局注册) // 富文本编辑器 import VueQuillE ...

  4. kindeditor扩展粘贴截图功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  5. 上传图片流到服务器(AFN方法) (多张图片)(图片流)

      上传图片流到服务器(AFN方法) (多张图片)(图片流) 第一步//获取图片 UIAlertController *actionSheet = [UIAlertController alertCo ...

  6. html+php上传图片文件到服务器

    html+php上传图片文件到服务器 一.html代码 <body> <form action="" method="post" enctyp ...

  7. MVC异步上传图片到本地/服务器

    这两天朋友问我,有没有异步上传图片到本地/服务器这种demo,他有用, 我就想,好吧, 那刚好周末了,整理一套出来. 主要用到的是jquery uploadify 这个juqery的插件 ,可以无刷新 ...

  8. php工作笔记1-数组常用方法总结,二维数组的去重,上传图片到oss服务器

    1.二维数组去重,生成二维数组 private function array_unique_fb($array2D){ $data = array(); foreach($array2D  as $k ...

  9. ios客户端base64上传图片到java服务器遇到的问题

    由于base64位包含了“+”和“\”两个特殊符号,导致ios编码后上传图片到服务器,服务器解码以后的值会不一致,导致图片损坏. 解决办法:重写Base64类,用“(”和“)”替换“+”和“\”两个特 ...

随机推荐

  1. cf 620C Pearls in a Row(贪心)

    d.有一串数字,要把这些数字分成若干连续的段,每段必须至少包含2个相同的数字,怎么分才能分的段数最多? 比如 是1 2 1 3 1 2 1 那么 答案是 21 34 7 即最多分在2段,第一段是1~3 ...

  2. 安装程序工具 (Installutil.exe)22

    网址:https://msdn.microsoft.com/zh-cn/library/50614e95(VS.80).aspx  安装程序工具 (Installutil.exe) .NET Fram ...

  3. linux--安装phpcurl扩展

    在UBUNTU中直接用APT包管理工具安装: apt-get install curl libcurl3 libcurl3-dev php5-curl 安装好后重启Apache服务器就行了,如果还是不 ...

  4. In-App Purchase Programming Guide----(五) ----Delivering Products

    Delivering Products In the final part of the purchase process, your app waits for the App Store to p ...

  5. linux中用无名管道进行文件的读写

    1管道是什么: 水管子大家知道,有两端,在此一端用来读一端用来写,其中一端的输出作为另外一端的输入. 2 函数原型 int pipe(int pipefd[2]);//参数中分别代表的两端 3 例子: ...

  6. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时10

    课时10 神经网络训练细节part1(上) 没有大量的数据也不会有太多影响,只需要找一个经过预训练的卷积神经网络然后进行调整 从数据集中抽样一小批数据, 将数据运入卷积神经网络中来计算损失值 通过反向 ...

  7. E20180331-hm

    corresponding adj. 相当的,对应的; 通信的; 符合的,符合; 一致的; implicitly adv. 含蓄地; 暗示地; 无疑问地; 无保留地; causal  adj. 具有因 ...

  8. C++开发工程师面试题库 100~150道

    101. 编写strcat函数(6分) 已知strcat函数的原型是char *strcat (char *strDest, const char *strSrc); 其中strDest 是目的字符串 ...

  9. hdu 3172 Virtual Friends (字符串的并查集)

    一开始一直wa,因为第一个数字t也是多组输入. 然后一直超时,因为我用的是C++里面的cin,所以非常耗时,几乎比scanf慢了10倍,但是加上了一个语句后: std::ios::sync_with_ ...

  10. MVC 感触

    这几天接触了下 ef+ MVC+WEBAPI +bootstrop VIEW--->Controller  -->WebAPI  ---Model (Linq) 记住 VIEW里的 csh ...