Partage
  • Partager sur Facebook
  • Partager sur Twitter

Decouper de gros fichiers avec qt

Sujet résolu
    13 avril 2022 à 21:13:38

    Salut tout le monde!

    j'espere que vous vous portez bien:D.

    J'aimerais envoyer de gros fichier a travers le reseau en utilisant QTcpSocket et WebSocket.Mon probleme est au niveau de la fonction write qui pour des fichiers ayant une taille assez importante fais plante mon programme.De plus j'aimerais creer une fonction uploadProgress pour afficher l'evolution du telechargement.Mais aucun signal cote server me permet d'avoir cela.Du moins a ma connaissance.

    Veuillez m'aidez svp:euh:

    • Partager sur Facebook
    • Partager sur Twitter
      13 avril 2022 à 22:07:57

      Ca s'appelle des multipart requests sauf erreur de ma part. Qt gère ça (au moins avec QNetworkAccessManager, c'est ce que j'utilise. Pour QTcpSocket, je sais pas).

      Tu peux regarder https://stackoverflow.com/questions/38179706/uploading-a-file-in-multipart-form-data-in-qt5 et https://doc.qt.io/qt-5/qhttpmultipart.html#details 

      Et pour uploadProgress, tu as ça dans QNetworkReply https://doc.qt.io/qt-5/qnetworkreply.html#uploadProgress 

      • Partager sur Facebook
      • Partager sur Twitter
        13 avril 2022 à 22:43:07

        Merci infiniment pour ta repose.Si je peux avoir une solution sur QTcpSocket,cela me fera plaisir.

        J'aimerais aussi savoir si la serialisation n'intervient pas dedans??

        -
        Edité par PatrickBaguidi 13 avril 2022 à 22:48:11

        • Partager sur Facebook
        • Partager sur Twitter
          14 avril 2022 à 6:12:40

          La serialisation sert a preparer et lire les données. C'est un intermediaire entre tes données et le reseau. Mais ca ne fait pas a proprement partie du reseau (on peut serialiser pour enregistrer sur fichier par exemple)

          data <----> serialisation <----> reseau/fichier

          Avec Qt, tu peux utiliser QDataStream ou QTextStream pour la sérialisation.

          • Partager sur Facebook
          • Partager sur Twitter
            14 avril 2022 à 23:24:25

            Salut,

            gbdivers a écrit:

            Ca s'appelle des multipart requests sauf erreur de ma part.

             On parle d'une requête multipart juste quand un formulaire (souvent côté client) souhaite envoyer autre donnée (souvent binaire pour le fichier) que des chaînes de caractères au serveur.


            PatrickBaguidi a écrit:

            Merci infiniment pour ta repose.Si je peux avoir une solution sur QTcpSocket,cela me fera plaisir.

            Tu doit utiliser la combinaison de la classe QByteArray et QDataStream

            Note: Pour enregistrer ton fichier dans un QByteArray tu aura besoin d'un QBuffer (qui le fait simplement)

            -
            Edité par EL-jos 15 avril 2022 à 0:11:55

            • Partager sur Facebook
            • Partager sur Twitter

            Ton présent détermine ton futur et la connaissance te placera au dessus de ta génération .

              8 mai 2022 à 14:40:39

              Salut !,excusez moi pour le retard de reponse.

              Merci infiniment pour ta reponse

              • Partager sur Facebook
              • Partager sur Twitter

              Decouper de gros fichiers avec qt

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown