• 8871阅读
  • 3回复

来一个可以上传多个文件的类 [复制链接]

上一主题 下一主题
离线hetal
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-14
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2010-09-11) —
运行
  1. qmake
  2. make



  1. #include "QHttpUploader.h"
  2. #include <QCoreApplication>
  3. int main(int argc,char *argv[]){
  4.     QCoreApplication a(argc,argv);
  5.     QHttpUploader er("http://127.0.0.1/upload.php");
  6.     //er.setUrl("http://127.0.0.1/upload.php");
  7.     er.addItem("NAME","VALUE");
  8.     QFile *f = new QFile("test.txt");
  9.     er.addFile(f);
  10.     QFile f2("test.png");
  11.     er.addFile(f2);
  12.     er.addFile("test2.png");
  13.     er.upload();
  14.     return a.exec();
  15. }


  1. /**
  2. * QUploader 上传文件类
  3. * author: hetal
  4. * date  : 2010-4-14
  5. */
  6. #include <QObject>
  7. #include <QNetworkRequest>
  8. #include <QNetworkAccessManager>
  9. #include <QUrl>
  10. #include <QDebug>
  11. #include <QFile>
  12. #include <QNetworkReply>
  13. class QHttpUploader:public QObject
  14. {
  15.     Q_OBJECT
  16. private:
  17.     QUrl _url;
  18.     QString _boundary;
  19.     QByteArray _data;
  20.     QNetworkAccessManager _manager;
  21. public:
  22.     /**
  23.      * @param QString 上传地址
  24.      */
  25.     QHttpUploader(QString);
  26.     /**
  27.      * @param QUrl 上传地址
  28.      */
  29.     QHttpUploader(QUrl);
  30.     QHttpUploader();
  31.     /**
  32.      * 设置上传地址
  33.      * @param QString
  34.      */
  35.     void setUrl(QString);
  36.     /**
  37.      * 设置上传地址
  38.      * @param QUrl
  39.      */
  40.     void setUrl(QUrl);
  41.     /**
  42.      * 设置cookie
  43.      * @param QNetworkCookieJar *
  44.      */
  45.     void setCookie(QNetworkCookieJar *){};
  46.     /**
  47.      * 增加参数
  48.      */
  49.     void addItem (const QString key, const QString value );
  50.     void addEncodedItem (const QByteArray key,const  QByteArray value );
  51.     /*增加文件*/
  52.     void addFile(QFile *);
  53.     void addFile(QFile &);
  54.     void addFile(QString &);
  55.     void addFile(char*);
  56.     /*上传*/
  57.     void upload();
  58. private slots:
  59.     void    _postFinished ( QNetworkReply * reply );
  60. signals:
  61.     /*上传开始*/
  62.     void started();
  63.     /**
  64.      *上传完成
  65.      *你应该QNetworkReply::deleteLater()
  66.      **/
  67.     void finished(QNetworkReply*);
  68.     /*上传失败*/
  69.     void error(QNetworkReply::NetworkError);
  70. };
附件: QHttpUploader.rar (27 K) 下载次数:162
离线dduyoung

只看该作者 1楼 发表于: 2010-09-11
下过来试试先。
离线李玉荣
只看该作者 2楼 发表于: 2011-11-25
可是下载下来报错啊
楼主是可以运行的么
离线shucan3652
只看该作者 3楼 发表于: 2012-08-26
感谢lz分享
快速回复
限100 字节
 
上一个 下一个