none
Últimas dúvidas: UPLOAD DE ARQUIVOS RRS feed

  • Pergunta

  • Estava estudando upload  de arquivos com C#, depois de  criar alguns tópicos aqui no fórum exibindo os erros, agora tenho dúvidas...

    byte[] imageBytes = new byte[uploadFile.PostedFile.InputStream.Length + 1];
    
    uploadFile.PostedFile.InputStream.Read(imageBytes, 0, imageBytes.Length);
    

    1) Oque é "InputStream"

    2) Oque quer dizer "InputStream.Lenght + 1"

    3) Por que o uso desse "+1" ?

    4) Oque quer dizer "InputStream.Read"

    5) Oque quer dizer "InputStream.Read(imageBytes,0,imageBytes.Lenght) << Oque o imageBytes diz? Oque o zero diz? Oque imageBytes.Lenght diz?

    sábado, 29 de outubro de 2011 13:30

Respostas

  • InputStream é uma classe abstrata. Ela permite que você faça a leitura de um byte ou sequencia de bytes...

    "Read" é Ler...

    Quando você usa o .Lenght é para exibir o "comprimento/tamanho" do objeto.  Por exemplo: um campo TextBox onde o usuario digitou 4 caracteres. O Length (da propriedade Text) dele vai ser de 4.

    + 1 serve apena para acrescetar 1.

    Quando você chama InputStream.Read, o método (neste caso) pede três parametros: o objeto que deve ser lido, posição que deve começar a leitura (0), e até onde ler .Lenght (quantidade/comprimenro).


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    • Marcado como Resposta André .NET terça-feira, 1 de novembro de 2011 15:48
    segunda-feira, 31 de outubro de 2011 12:25
  • Olá,

    A propriedade InputStream se refere aos bytes do documento que foi anexado. O "InputStream.Lenght + 1" não acredito que seja necessário, então pode substituir isso por apenas "InputStream.Lenght". O método Read lê os bytes que estão dentro de InputStream, copiando-os para dentro de imageBytes (que é o array que vc criou na linha acima) a partir da posição 0 (por isso o uso do zero) até a última posição (por isso o uso do imageBytes.Lenght). O imageBytes.Lenght retorna o tamanho em bytes do arquivo anexo, por isso seu uso é tão importante, pois ele informa o tamanho do anexo e é crucial para a criação do array de bytes e leitura do arquivo.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marcado como Resposta André .NET terça-feira, 1 de novembro de 2011 15:48
    segunda-feira, 31 de outubro de 2011 12:32
    Moderador

Todas as Respostas

  • InputStream é uma classe abstrata. Ela permite que você faça a leitura de um byte ou sequencia de bytes...

    "Read" é Ler...

    Quando você usa o .Lenght é para exibir o "comprimento/tamanho" do objeto.  Por exemplo: um campo TextBox onde o usuario digitou 4 caracteres. O Length (da propriedade Text) dele vai ser de 4.

    + 1 serve apena para acrescetar 1.

    Quando você chama InputStream.Read, o método (neste caso) pede três parametros: o objeto que deve ser lido, posição que deve começar a leitura (0), e até onde ler .Lenght (quantidade/comprimenro).


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    • Marcado como Resposta André .NET terça-feira, 1 de novembro de 2011 15:48
    segunda-feira, 31 de outubro de 2011 12:25
  • Olá,

    A propriedade InputStream se refere aos bytes do documento que foi anexado. O "InputStream.Lenght + 1" não acredito que seja necessário, então pode substituir isso por apenas "InputStream.Lenght". O método Read lê os bytes que estão dentro de InputStream, copiando-os para dentro de imageBytes (que é o array que vc criou na linha acima) a partir da posição 0 (por isso o uso do zero) até a última posição (por isso o uso do imageBytes.Lenght). O imageBytes.Lenght retorna o tamanho em bytes do arquivo anexo, por isso seu uso é tão importante, pois ele informa o tamanho do anexo e é crucial para a criação do array de bytes e leitura do arquivo.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.wordpress.com/
    Twitter: @ferhenrique
    • Marcado como Resposta André .NET terça-feira, 1 de novembro de 2011 15:48
    segunda-feira, 31 de outubro de 2011 12:32
    Moderador