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.
  • Mehmet AKM Offline
    Mehmet AKM Offline
    Mehmet AK
    wrote on 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
    • Mehmet AKM Offline
      Mehmet AKM Offline
      Mehmet AK
      wrote on 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
      • Mehmet AKM Offline
        Mehmet AKM Offline
        Mehmet AK
        wrote on 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
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on 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
          • Mehmet AKM Offline
            Mehmet AKM Offline
            Mehmet AK
            wrote on 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
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on 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

              • Login

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