Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. [Ajuda] Servidor http no Qt nao envia imagem
QtWS25 Last Chance

[Ajuda] Servidor http no Qt nao envia imagem

Scheduled Pinned Locked Moved Portuguese
12 Posts 2 Posters 3.8k 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.
  • R Offline
    R Offline
    Rodrigocg
    wrote on last edited by
    #1

    Fiz um servidor http usando o Qt, mas ele nao esta enviando imagens, pois nao consegue abrir o arquivo de imagem...

    segue o trecho do codigo onde o erro acontece:

    @
    QString dir = "/home/meussites"+list.at(1);

    QFileInfo fileInfo( dir );
    if ( fileInfo.isDir() )
        dir+="index.html";
    
    QFile file(dir);
    qDebug(&#41;<<dir;
    QString sufix=fileInfo.suffix();
    
    if(sufix.compare("jpg")== 0)sufix = "image/jpeg";
    else if(sufix.compare("gif")== 0)sufix = "image/gif";
    else if(sufix.compare("png")== 0)sufix = "image/png";
    else if(sufix.compare("ico")== 0)sufix = "image/x-icon";
    
    else if(sufix.compare("htm")== 0)sufix = "text/html";
    else if(sufix.compare("html")== 0)sufix = "text/html";
    else if(sufix.compare("css")== 0)sufix = "text/css";
    else if(sufix.compare("js")== 0)sufix = "text/javascript";
    
    else if(sufix.compare("au")== 0)sufix = "audio/basic";
    else if(sufix.compare("wav")== 0)sufix = "audio/wav";
    else if(sufix.compare("mp3")== 0)sufix = "audio/mp3";
    
    
    else if(sufix.compare("avi")== 0)sufix = "video/x-msvideo";
    else if(sufix.compare("mpeg")== 0)sufix = "video/mpeg";
    
    //aqui acontece o erro
    if (!file.open(QFile::ReadWrite ))
    {
        qDebug()<<"error ao abrir o arquivo:"<<dir;
        QString resposta ="HTTP/1.1 404 OK\r\n";
        QString cabecalho= resposta+"\r\n";
    
        int erro = tcpSocket->write(cabecalho.toLocal8Bit(),cabecalho.toLocal8Bit().count());
    
    }else
    

    @

    tentei abrir ele como arquivo binario mas mesmo assim deu erro...

    Preciso transformar a imagem em uma Stream para enviar ao navegador...

    desde já agradeço a ajuda....

    1 Reply Last reply
    0
    • T Offline
      T Offline
      TioRoy
      wrote on last edited by
      #2

      Qual é o erro que apresenta?

      Para ler binário, use o QDataStream, mais ou menos assim (não testei):

      @
      QFile file("image.jpg");
      if (!file.open(QIODevice::ReadOnly))
      return;

      int size = file.size(); //Não é a melhor maneira.... o arquivo pode ser muito grande para alocar....
      char *buffer = new char[size];

      QDataStream in(&file);
      in.readRawData(buffer, sizeof(buffer));
      @

      1 Reply Last reply
      0
      • R Offline
        R Offline
        Rodrigocg
        wrote on last edited by
        #3

        entao,eu tentei usar o QDataStream para abrir ele como binario, mas na hora que faco file.open() ele da um erro. esse 'e omeu problema... ele ao quer abrir a imagem...

        1 Reply Last reply
        0
        • T Offline
          T Offline
          TioRoy
          wrote on last edited by
          #4

          Mas qual é o erro?

          1 Reply Last reply
          0
          • R Offline
            R Offline
            Rodrigocg
            wrote on last edited by
            #5

            erro 5, quando eu uso file.error()....

            a referencia do erro eh: The file could not be opened.

            1 Reply Last reply
            0
            • T Offline
              T Offline
              TioRoy
              wrote on last edited by
              #6

              bq. @QString dir = "/home/meussites"+list.at(1);@

              O retorno do list.at(1) é o nome do arquivo?

              Não seria assim?

              @
              QString dir = "/home/meussites/"+list.at(1);
              @

              1 Reply Last reply
              0
              • R Offline
                R Offline
                Rodrigocg
                wrote on last edited by
                #7

                nao, pq o GET que o navegador envia ja tem a /.

                o servidor ta funcionando, enviando arquivos de texto... mas nao envia imagens pq antes de envia-la para um QTextStrean ou QDataStrean ele da erro na hora que eu mando abrir.

                1 Reply Last reply
                0
                • R Offline
                  R Offline
                  Rodrigocg
                  wrote on last edited by
                  #8

                  Pra ser mais especifico, estava testando aqui, ele nao esta abrindo imagens do tipo png e .ico...

                  1 Reply Last reply
                  0
                  • T Offline
                    T Offline
                    TioRoy
                    wrote on last edited by
                    #9

                    Entendi.

                    Sei que parecem perguntas idiotas, mas já checou a permissão dos arquivos? Você já trocou de "ReadWrite" para "ReadOnly"? O nome dos arquivos (maiúsculo/minusculo) estão batendo?

                    1 Reply Last reply
                    0
                    • R Offline
                      R Offline
                      Rodrigocg
                      wrote on last edited by
                      #10

                      so nao chequei a permissao dos arquivos... vou checar e te falo

                      1 Reply Last reply
                      0
                      • R Offline
                        R Offline
                        Rodrigocg
                        wrote on last edited by
                        #11

                        alterei as permissoes e continua insistindo em nao ler o arquivo....

                        vou postar o codigo completo mais tarde pra vc dar uma olhada pra mim... se puder e claro...

                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          TioRoy
                          wrote on last edited by
                          #12

                          Pode mandar.

                          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