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. Sending a file to website through post request
Forum Updated to NodeBB v4.3 + New Features

Sending a file to website through post request

Scheduled Pinned Locked Moved General and Desktop
17 Posts 5 Posters 8.7k Views 1 Watching
  • 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.
  • raven-worxR Offline
    raven-worxR Offline
    raven-worx
    Moderators
    wrote on last edited by
    #6

    if that's all the info you're providing i think nobody will be able to help you.

    What isn't working?
    How you you create the Request?
    etc.

    --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
    If you have a question please use the forum so others can benefit from the solution in the future

    1 Reply Last reply
    0
    • B Offline
      B Offline
      b1gsnak3
      wrote on last edited by
      #7

      @
      QUrl url;
      url.addQueryItem("a", "upload");
      url.addQueryItem("t", token);
      url.addQueryItem("file", pictureByteArray.toHex());

      QNetworkRequest req;
      req.setUrl("www.example.com/sth.php");

      QNetworkAccessManager networkAM;
      networkAM.post(req, url.encodedQuery());

      connect(&networkAM, SIGNAL(finished(QNetworkReply ), this, SLOT(replyHandler(QNetworkReply)));
      @

      1 Reply Last reply
      0
      • K Offline
        K Offline
        KA51O
        wrote on last edited by
        #8

        Just from having a look at the documentation of QNAM::post I can tell that this line can not work.
        @
        networkAM.post(req, url.encodedQuery());
        @

        1 Reply Last reply
        0
        • B Offline
          B Offline
          b1gsnak3
          wrote on last edited by
          #9

          Well.. This is weird as I get reply from server... Why do you say it will not work?

          1 Reply Last reply
          0
          • K Offline
            K Offline
            KA51O
            wrote on last edited by
            #10

            Ok. I have no experience with QNAM, but the doc just mentioned QIODevice, const QByteArray & and QHttpMultiPart * as candidates for the second argument of post. And since QUrl inherits from none of these I thought this could not work.

            I would have tried something like this. But this is just a shot in the dark.
            @
            QUrl url ("www.example.com/sth.php");
            url.addQueryItem("a", "upload");
            url.addQueryItem("t", token);
            //url.addQueryItem("file", pictureByteArray.toHex()); Not sure if this is needed with my suggestion

            QNetworkRequest req;
            req.setUrl(url);

            QNetworkAccessManager networkAM;
            QFile* myImage = new QFile("filePath")
            if(myImage->open(QIODevice::ReadOnly))
            {
            networkAM.post(req, myImage);
            }
            @

            1 Reply Last reply
            0
            • B Offline
              B Offline
              b1gsnak3
              wrote on last edited by
              #11

              QUrl::encodedQuery() returns a QByteArray

              1 Reply Last reply
              0
              • K Offline
                K Offline
                KA51O
                wrote on last edited by
                #12

                Ahh ok. Sry for the confusion I caused.

                Edit: Maybe the problem is related to this comment from the docs of QNAM::post [quote]data must be open for reading and must remain valid until the finished() signal is emitted for this reply.[/quote]

                The object returned by QUrl::encodedQuery goes out of scope after the function returns ?

                1 Reply Last reply
                0
                • B Offline
                  B Offline
                  b1gsnak3
                  wrote on last edited by
                  #13

                  That is not the problem.. I created a new QByteArray to store the return value but still nothing happens... I think I must create my own model for sending after sniffing what a post method in php sends to the server :( bleah got into software to escape web dev and now i have to do this... Thank you I will submit some code example after I finish (if I finish)

                  1 Reply Last reply
                  0
                  • K Offline
                    K Offline
                    KA51O
                    wrote on last edited by
                    #14

                    ^^ Completely agree on the web dev part. Maybe "the example in the QHtmlMultiPart doc":http://qt-project.org/doc/qt-4.8/qhttpmultipart.html#details can be helpful ? Anyways good luck.

                    1 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      Code_ReaQtor
                      wrote on last edited by
                      #15

                      Try to use "FormPost":http://www.tuckdesign.com/sources/Qt

                      I have a similar problem when I am starting to code for an API which includes a "HTML Form" for sending files to a server. I used QNAM::post()... tried QHttpMultiPart... but still they won't work. Found out that there is something wrong with QHttpMultiPart and it uses a different specification (RFC 2046).

                      FormPost should work. I just modified some parts of it and it worked like a charm. You can visit my "site":https://github.com/Code-ReaQtor/libqsendspace/tree/master/qsendspace/src for reference.

                      Please visit my open-source projects at https://github.com/Code-ReaQtor.

                      1 Reply Last reply
                      0
                      • B Offline
                        B Offline
                        b1gsnak3
                        wrote on last edited by
                        #16

                        Ty very much I believe this is what I must use I think. xD Will try tomorrow today my head is pounding from head banging the keyboard ^^

                        1 Reply Last reply
                        0
                        • B Offline
                          B Offline
                          b1gsnak3
                          wrote on last edited by
                          #17

                          Ok so QHttpMultiPart doesn't work (wish I would've checked the post sooner, before head banging my head with it, seeing as someone already tried using this). Will try your solution tomorrow, thank you Code_ReaQtor

                          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