Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Em Código Para Abertura De Arquivos


thicomp

Pergunta

Pessoal, será que alguém poderia me solucionar uma dúvida??

Tenho este código para abertura de arquivos, ele funciona normal, mas se uma das variáveis tiver um nome composto, ele não abre o arquivo.

Outra coisa, quando mando imprimir na tela a variável "caminho_foto", se a variável tiver nome simples ele me retorna o caminho completo, mas se tiver nome composto ele não me retorna nada...

Será que alguém teria alguma sugestão????

Abçs

<%

a=request.querystring("a")

b=request.querystring("b")

c=request.querystring("c")

'Declaramos as variáveis e os objetos que iremos utilizar na memória

Dim objFSO, Caminho_Foto

Response.AddHeader "enc-Type","multipart/form-data"

'Habilitamos o Buffer

Response.Buffer = True

'Postamos no browser o conteúdo do Response.AddHeader, pois abaixo iremos ler os dados binários de um arquivo e o cabeçalho, tem que estar setado como Content-Type image/jpeg

Response.Flush

'Declaramos o valor da variável como caminho físico do local que se encontra a foto.

Caminho_Foto = "F:\Root\Produtos\"& a &"\"& b &"\relatorios\"& c &".pdf"

response.write caminho_foto&"<br><br>"

'Iniciamos a instância do componente FSO, pois verificaremos se o arquivo existe no caminho determinado pelo usuário.

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

'Através do método FileExists do componente FSO impomos a condição para verificamos se o caminho físico do arquivo é um caminho válido, para evitar erros ao processar ao carregar o arquivo abaixo

If objFSO.FileExists(Caminho_Foto) = True Then

'Declaramos a variável do objeto que usaremos abaixo

Dim objLerArquivo

'Declaramos uma constante necessária para ser usado no componente instanciado abaixo.

Const adTypeBinary = 1

'Instanciamos o componente responsável por ler o arquivo e retornar a mesma.

Set objLerArquivo = Server.CreateObject("ADODB.Stream")

'Iniciamos a operação pela propriedade Open

objLerArquivo.Open

'Especificamos ao objeto qual será o tipo de dados que o componente deve processar neste caso entra a constante declarada acima, apontando o tipo de arquivo para binário.

objLerArquivo.Type = adTypeBinary

'Carregamos o Arquivo no componente pela propriedade LoadFromFile

objLerArquivo.LoadFromFile Caminho_Foto

'Exibimos na tela utilizando o Response.BinaryWrite, o resultado do arquivo que o ADODB.Stream processou acima.

Response.BinaryWrite objLerArquivo.Read

'Fechamos o Objeto

objLerArquivo.Close

'Terminamos a instancia ao componente liberando a memória

Set objLerArquivo = Nothing

'Novamente devolvemos todo conteúdo, armazenado em buffer

Response.Flush

'Limpamos o buffer

Response.Clear()

Else

'Caso o arquivo não seja encontrado, limpamos o buffer e terminamos o programa.

Response.Clear()

Response.End

End If

'Terminamos a instância com o componente FSO e liberamos a memória.

Set objFSO = Nothing

%>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá...Eu não entendi o por que você está usando um outro método para abrir o arquivo, mas você está se confundindo da sua colocação FSO, o que você está fazendo com FSO é a mesma coisa que fazer duas perguntas ao mesmo tempo...EX

Se limão for verde ...e limão é verde então(objFSO.FileExists(Caminho_Foto) = True Then

)... Neste ponto você usa o TRUE no FSO está te retornando uma confirmação porem não o que você quer, ele está conferindo o endereço físico do arquivo porem você está usando um outro método para fazer o que o Asp normalmente faria, neste ponto você esta se confundindo, o FSO está simplesmente afirmando o que você colocou, em outras palavras, você confirmou que é verdadeiro porem a informação do FSO está distorcido, à vez de confirmar o arquivo ele está confirmando o endereço físico, sendo verdadeiro ou não.

Acredito se você usar o FSO para somente verificar e não confirmar sua colocação, acredito que ele ira funcionar como você quer.

Espero ter ajudado você, elimine o TRUE e tente usar o FSO somente para verificar ou organizar.

:D

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...