Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Problème télécharger fichier sur android



  • Bonjour j'ai un soucis lorsque je veux télécharger une image depuis un serveur sur un appareil android. L'image ne se télécharge pas du tout. Le même code fonction sur windows et non sur android.
    J'utilise QNetworkAccessMAnager et QNetworkReply pour télécharge le fichier depuis une url.

    Merci de vos réponse.


  • Lifetime Qt Champion

    Bonjour,

    Vous devriez montrer le code que vous utiliser. La première chose qui vient en tête est que vous essayer de stocker le fichier à un endroit qui est en lecture seule.



  • QNetworkAccessManager managerPM;
        QNetworkReply *replyFirm;
       replyFirm = managerPM.get(QNetworkRequest(QUrl("https://www.google.com/imgres?imgurl=https%3A%2F%2Fstatic.neris-assets.com%2Fimages%2Ftest-header-3.svg&imgrefurl=https%3A%2F%2Fwww.16personalities.com%2Ffr%2Ftest-de-personnalite&docid=b2EKdwgohwnrNM&tbnid=LLSqc5L4G3MOTM%3A&vet=10ahUKEwjUpeSFmu_mAhWHXsAKHYnoBwUQMwhPKAAwAA..i&w=800&h=800&itg=1&bih=953&biw=1280&q=image%20test&ved=0ahUKEwjUpeSFmu_mAhWHXsAKHYnoBwUQMwhPKAAwAA&iact=mrc&uact=8")));
       QEventLoop eventLoop;
       QObject::connect(replyFirm, SIGNAL(finished()), &eventLoop, SLOT(quit()));
          eventLoop.exec();
    QString path = "/sdcard/Download/sojadis_wallpaper_tablette1.png";
       QFile filemanquant(path);
       
    
       if ( filemanquant.open(QIODevice::ReadWrite) )
       {
    QMessageBox mess;
    mess.setText(path);
    mess.exec();
           filemanquant.write(replyFirm->readAll());
           filemanquant.close();
    
               }
    


  • L'url n'est pas celle que j'utiliserais dans mon code c'est juste un exemple.


  • Lifetime Qt Champion

    Il vaut mieux utiliser QStandardPaths pour obtenir le chemin adéquat pour le stockage des fichiers.

    Il n'est pas certain que le chemin que vous avez codé en dur existe et ni qu'il soit accessible par votre application.



  • J'ai bien testé les histoires d'emplacement de fichier, il n'y a aucun soucis de se coté la.
    Par contre j'ai remarquée que lorsque j'utilisais une requête autres que "https" je récupères bien le fichier voulu.



  • @PAD49 Bonjour, pour des raisons de licence, les libraires OpenSSL ne sont pas fournis avec les binaires Android.
    Pour ajouter les libraries OpenSSL, il faut suivre la procédure décrite ici ==> https://doc.qt.io/qt-5/android-openssl-support.html


  • Lifetime Qt Champion

    Juste une petite précision, ce n'est pas une question de license mais de restrictions de distribution dans certain pays par rapport à l'usage de la cryptographie. C'est au développeur de faire les démarches nécessaires.



  • Je vous remercie, j'ai ajouter les libs ssl nécessaires et cela fonctionne correctement.


Log in to reply