Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

thicomp

Problema em código de abertura de arquivo

Recommended Posts

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óriaDim objFSO, Caminho_FotoResponse.AddHeader "enc-Type","multipart/form-data"'Habilitamos o BufferResponse.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/jpegResponse.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 abaixoIf 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.EndEnd If'Terminamos a instância com o componente FSO e liberamos a memória.Set objFSO = Nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim nome composto ou nome simples? Bom, você quis dizer caminho fisico ou virtual? Caso for, faz o seginte:

 

Essa linha

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

Você troca para essa:

Caminho_Foto = (Server.MapPath("aqui você coloca o caminho apartir da onde tá o arquivo asp(no caso esse, até onde fica o pdf"))"

Flw! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom cara, é assim...Nome Composto - um nome com duas palavrasNome Simples - um nome com apenas 1 palavraCom variáveis com valores de nome simples o código funciona normalmente, inclusive imprime o caminho na tela com o response.write, mas se a variável tiver como valor um Nome Composto, o código já não abre o arquivo e nem imprime o caminho do arquivo na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, já pensei em fazer isso, mas acontece que se eu fizer isso, vou zoar com tudo aqui, por isso estava tentando achar uma outra maneira de solucionar este problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.