Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Upload image file
QtWS25 Last Chance

Upload image file

Scheduled Pinned Locked Moved Solved General and Desktop
5 Posts 2 Posters 3.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Mehmet AK
    wrote on 5 Jul 2017, 15:51 last edited by
    #1

    Hi .
    test code is ```
    QUrl testUrl("http://app/test.php");
    QNetworkAccessManager* mgr = new QNetworkAccessManager();
    QNetworkRequest request(testUrl);
    QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);

    QHttpPart textPart;
     textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\""));
     textPart.setBody("my text");
    
    QHttpPart imagePart;
    imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
    imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"image\""));
    request.setRawHeader("Content-ID", "my@content.id");
    //request.setRawHeader("User-Agent", "Mozilla/5.21");
    QFile *file = new QFile("C:/xampp/app/images/uploads/product/1024_blue_earth_wallpaper.jpg");
    qDebug() << file->open(QIODevice::ReadOnly);
    imagePart.setBodyDevice(file);
    file->setParent(multiPart);
    multiPart->append(textPart);
    multiPart->append(imagePart);
    
     QNetworkReply *reply = mgr->post(request,multiPart);
    
    php code is 
    

    <?php
    $x="";
    foreach (getallheaders() as $name => $value) {
    $x.="$name: $value\n";
    }

    $json_string = json_encode($_FILES)." boş geçme 111 ".$x.$_POST['text'].$_FILERS['image']['tmp_name'];
    
    $file_handle = fopen('my_filename.json', 'w');
    fwrite($file_handle, $json_string);
    fclose($file_handle);
    //echo "[{}]";
    
    
     //$sonuc = array('sonuc' =>'olumlu' );
     //$sonucValue = array_values($sonuc);
     //echo json_encode($sonucValue);
     $myArr = array( "name"=>"John", "title" => "student");
    

    $myJSON = json_encode($myArr);

    //echo $myJSON;
    //echo "tamamdir";

    //$files = multiple($_FILES);
    //echo json_encode($_FILES);
    //print_r($_FILES);

    ?>

    
    and result 
    
    [] boş geçme 111 Content-ID: my@content.id
    Content-Type: multipart/form-data; boundary="boundary_.oOo._NjAzNg==MTU5NTU=Mjg0NDQ="
    MIME-Version: 1.0
    Content-Length: 288082
    Connection: Keep-Alive
    Accept-Encoding: gzip, deflate
    Accept-Language: en-US,*
    User-Agent: Mozilla/5.0
    Host: app
    my text
    
    my text data  post success  but image data
    how can i solve problem 
    thx for helping
    1 Reply Last reply
    0
    • M Offline
      M Offline
      Mehmet AK
      wrote on 6 Jul 2017, 01:49 last edited by
      #4

      Hi SGaist .there is no connection error . everything is ok.

      The following code works

      QUrl testUrl("http://app/test.php");
          QNetworkAccessManager* mgr = new QNetworkAccessManager();
          QNetworkRequest request(testUrl);
          QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
      
          QHttpPart textPart;
           textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\""));
           textPart.setBody("Merhaba ");
      
           QStringList headers;
           headers
               << "Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
               << "Accept-Encoding	gzip, deflate"
               << "Accept-Language	ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"
               << "User-Agent	Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0";
      
          request.setRawHeader("Content-ID", "xxxxxxxxxxxx");
          request.setRawHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
          request.setRawHeader("Accept-Encoding",	"gzip, deflate");
          request.setRawHeader("Accept-Language",	"ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3");
          request.setRawHeader("User-Agent",	"Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0");
          //request.setRawHeader("User-Agent", "Mozilla/5.21");
          QFile *file = new QFile("C:/xampp/app/images/uploads/product/1024_blue_earth_wallpaper.jpg");
          qDebug() << file->open(QIODevice::ReadOnly);
          //qDebug() << file->;
          QFileInfo fileInfo("C:/xampp/app/images/uploads/product/1024_blue_earth_wallpaper.jpg");
          QHttpPart imagePart;
          imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
          imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant(QString("form-data; name=\"image\";filename=\"%1\"").arg(fileInfo.fileName()).toLatin1()) );
          imagePart.setBodyDevice(file);
          file->setParent(multiPart);
          multiPart->append(textPart);
          multiPart->append(imagePart);
      
           QNetworkReply *reply = mgr->post(request,multiPart);
      
      1 Reply Last reply
      0
      • M Offline
        M Offline
        Mehmet AK
        wrote on 5 Jul 2017, 18:12 last edited by
        #2

        hi guys .this code is working on localhost . but not on web http addr
        how can i figure out this problem .

        QUrl testUrl("http://localhost/test.php");
            QNetworkAccessManager* mgr = new QNetworkAccessManager();
            QNetworkRequest request(testUrl);
            QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
        
            QHttpPart textPart;
             textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\""));
             textPart.setBody("my text");
        
        
            request.setRawHeader("Content-ID", "my@content.id");
            //request.setRawHeader("User-Agent", "Mozilla/5.21");
            QFile *file = new QFile("C:/xampp/app/images/uploads/product/1024_blue_earth_wallpaper.jpg");
            qDebug() << file->open(QIODevice::ReadOnly);
            //qDebug() << file->;
            QFileInfo fileInfo("C:/xampp/app/images/uploads/product/1024_blue_earth_wallpaper.jpg");
            QHttpPart imagePart;
            imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
            imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant(QString("form-data; name=\"image\";filename=\"%1\"").arg(fileInfo.fileName()).toLatin1()) );
            imagePart.setBodyDevice(file);
            file->setParent(multiPart);
            multiPart->append(textPart);
            multiPart->append(imagePart);
        
             QNetworkReply *reply = mgr->post(request,multiPart);
        
        
        1 Reply Last reply
        0
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 5 Jul 2017, 21:10 last edited by
          #3

          Hi,

          You seem to not connect any error related signals. You should add them in order to understand what is happening.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • M Offline
            M Offline
            Mehmet AK
            wrote on 6 Jul 2017, 01:49 last edited by
            #4

            Hi SGaist .there is no connection error . everything is ok.

            The following code works

            QUrl testUrl("http://app/test.php");
                QNetworkAccessManager* mgr = new QNetworkAccessManager();
                QNetworkRequest request(testUrl);
                QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
            
                QHttpPart textPart;
                 textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\""));
                 textPart.setBody("Merhaba ");
            
                 QStringList headers;
                 headers
                     << "Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
                     << "Accept-Encoding	gzip, deflate"
                     << "Accept-Language	ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"
                     << "User-Agent	Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0";
            
                request.setRawHeader("Content-ID", "xxxxxxxxxxxx");
                request.setRawHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
                request.setRawHeader("Accept-Encoding",	"gzip, deflate");
                request.setRawHeader("Accept-Language",	"ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3");
                request.setRawHeader("User-Agent",	"Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0");
                //request.setRawHeader("User-Agent", "Mozilla/5.21");
                QFile *file = new QFile("C:/xampp/app/images/uploads/product/1024_blue_earth_wallpaper.jpg");
                qDebug() << file->open(QIODevice::ReadOnly);
                //qDebug() << file->;
                QFileInfo fileInfo("C:/xampp/app/images/uploads/product/1024_blue_earth_wallpaper.jpg");
                QHttpPart imagePart;
                imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
                imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant(QString("form-data; name=\"image\";filename=\"%1\"").arg(fileInfo.fileName()).toLatin1()) );
                imagePart.setBodyDevice(file);
                file->setParent(multiPart);
                multiPart->append(textPart);
                multiPart->append(imagePart);
            
                 QNetworkReply *reply = mgr->post(request,multiPart);
            
            1 Reply Last reply
            0
            • S Offline
              S Offline
              SGaist
              Lifetime Qt Champion
              wrote on 6 Jul 2017, 19:56 last edited by
              #5

              I didn't wrote about connection error, but about connecting the error signal of QNetworkReply to know when something goes wrong.

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0

              2/5

              5 Jul 2017, 18:12

              • Login

              • Login or register to search.
              2 out of 5
              • First post
                2/5
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved