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

Problemas com INSERT no DUNDAS


Dundas e Access

Pergunta

Olá pessoal,

Estou criando uma página administrativa p o site q faço manutenção, e aderi ao dundas por ser fácil e o servidor ter suporte. Está tudo OK, entretanto, preciso gravar dados referentes às imagens upadas em um banco de dados.

ESTE É O FORM COM 5 INPUT TYPE para upload das imagens, estão funcionando corretamente.

<form action="Gravar.asp" method="post" enctype="multipart/form-data" name="form1" >

<p>Selecione as imagens que deseja:</p>

<p>

<input name="FILE1" type="file" size="50">

</p>

<p>

<input name="FILE2" type="file" size="50">

</p>

<p>

<input name="FILE3" type="file" size="50">

</p>

<p>

<input name="FILE4" type="file" size="50">

</p>

<p>

<input name="FILE5" type="file" size="50">

</p>

<p>

<input type="submit" name="Submit" value="Gravar dados">

</p>

</form>

ESTA É A PÁGINA QUE FAZ O UPLOAD DAS IMAGENS.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<!--#include file="conALBUNS.asp" -->

<%

Set objUpload = Server.CreateObject("Dundas.Upload.2")

objUpload.UseVirtualDir = False

objUpload.UseUniqueNames = False

' Salva o arquivo no caminho indicado abaixo.

objUpload.Save("NOME DA PASTA NO SERVIDOR")

caminho = "NOME DA PASTA NO SERVIDOR"

'A PARTIR DAQUI NADA FUNCIONA.

'ESTA VARIÁVEL ARMAZENA SOMENTE O CAMINHO VIRTUAL DA IMAGEM PARA EFEITO DE EXIBIÇÃO NA PÁGINA.

foto = "/foto/" & objUpload.GetFileName(objUpload.Files(0).Path)

'objUpload.Save server.MapPath("/CAMINHO DA PASTA/fotos")

For Each objUploadedFile in objUpload.Files

sql_insere = "INSERT INTO IMAGEM (IMG_NOME, CAMINHO) VALUES ('"& foto &"','"& foto &"')"

set tab_insere = MM_conALBUNS_STRING.execute(sql_insere)

Next

set objUpload = Nothing

'escreve na tela que o arquivo foi enviado com sucesso.

Response.Redirect("PÁGINA INICIAL DO SITE")

%>

Imagino que seja simples, mas como sou novo em ASP, preciso de uma luz. Agradeço desde já.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

1° - remove tudo que fez pelo dreanwever de seu código, pois é muito lixo em codigo altomatico.

2° - como você quer gravar no server se a linha que grava esta comentada?

3° - pegue o nome do arquivo dentro do loop, para mais de 1 arquivo.

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui resolver essa parada lendo alguns tópicos aqui do fórum e praticando "pacientemente"... pois bem, aqui vai o código solucionado.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Set objUpload = Server.CreateObject("Dundas.Upload.2")
objUpload.UseVirtualDir = False
objUpload.UseUniqueNames = False
' Salva o arquivo no caminho indicado abaixo.

'objUpload.Save server.MapPath("/album/fotos")
objUpload.Save "C:\Inetpub\vhosts\meudominio\httpdocs\album\fotos"
objUpload.SaveToMemory
    
    Dim rs
    'For Each objUploadedFile in objUpload.Files---> troquei esta linha, que enumerava cada objeto upado dentro da coleção objUpload.Files...
    For i = 0 to objUpload.Files.Count-1            ---> ...por esta linha, que obtém o total de campos no form, no meu caso 5 campos, enumerados pelo integer (i)

        'String que aponta o caminho da imagem no banco de dados.
        'foto = "fotos/" & objUpload.GetFileName(objUpload.Files(0).Path)---> troquei tb esta linha, nitidamente o mesmo arquivo era contado mas de uma vez.
                
                'Nesta linha aponto o arquivo atual upado, para efeitos de exibição no painel admin, está OK.
        foto = "/album/fotos/" & objUpload.GetFileName(objUpload.Files(i).Path)

                'Nesta linha obtenho o nome do arquivo atual que foi upado no form, está OK.
        nome = objUpload.GetFileName(objUpload.Files(i).Path)

                'esta linha armazena o caminho virtual do arquivo para efeito de exibição no painel administrativo somente, está OK.
        servidor = "/album/fotos/" & objUpload.GetFileName(objUpload.Files(i).Path)
    
                'AQUI ERA O IMPASSE, MAS CONSEGUI RESOLVER.
                'Aponto a conexão com o BD
        Set Cnn = Server.CreateObject("ADODB.Connection")

                'String de conexão com o BD
        Cnn.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/bd/album.mdb")
               
                'string para inserção de cada arquivo upado, obtendo o VALUE das variáveis especificadas anteriormente.
        sql = "INSERT INTO imagem (img_nome,caminho,caminhodoarquivo)"
        sql = sql & " VALUES (" 
        sql = sql & "'" & nome & "',"
        sql = sql & "'" & foto & "',"
        sql = sql & "'" & servidor & "')"
        'Nas linhas acima gravo cada valor das variáveis em seus respectivos campos na tabela no BD, está OK.

       'Aqui finalmente executo a instrução para finalizar a gravação do arquivo atual no BD, está OK.
        Set rs = cnn.execute(sql)

    Next---------> Aqui a solução de todo o impasse, agora nesta linha o loop é direcionado para o próximo arquivo upado, incrementando o integer (i)

    set objUpload = Nothing
    'escreve na tela que o arquivo foi enviado com sucesso.
    Response.Redirect("index.asp")---------> Aqui o usuário finalmente é direcionado para a página onde visualizará os arquivos upados.
%>

Bem, como sou novo na questão SQL para ASP, certamente os profissionais possuem observações importantes a respeito do código acima, claro que quero conhecer cada opinião, pois o saber não ocupa espaço, e não se aprende apenas ouvindo, mas praticando.

Agradeço desde já e deixo mais um desafio no fórum:

COMO UTILIZAR A CONTENTO O RECAPTCHA EM UMA PÁGINA DE ENVIO DE FORMULÁRIO, TIPO COMENTÁRIOS SOBRE UM ARTIGO EM UMA PÁGINA ASP???

Aguardo posts, abraço a todos.

Link para o comentário
Compartilhar em outros sites

  • 0

COMO UTILIZAR A CONTENTO O RECAPTCHA EM UMA PÁGINA DE ENVIO DE FORMULÁRIO, TIPO COMENTÁRIOS SOBRE UM ARTIGO EM UMA PÁGINA ASP???

não entendi...

a principio o captcha vai proteger sua aplicação ajax contra um caminhão de comentarios que podem ser postados automaticamente. ou travar scripts que irão enviar automatifamente conteudo ...

ou até mesmo descobrir a senha do admin por força bruta.... ( demora mais acha )...

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,4k
×
×
  • Criar Novo...