Ir para conteúdo

POWERED BY:

Arquivado

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

lezão

input type=file

Recommended Posts

Ola galera bom dia!

 

Galerinha estou tentando fazer uma coisa aki e naun estou conseguindo,

estou usando o input type=file para enviar fotos, e qnd a pessoa naun seleciona uma foto o input type=file envia uma foto automaticamente tipo sem_foto.pg p/ o banco é possivel fazer isso usando este codigo abaixo.

 

 

<!-- #include file = "funcoes.asp" -->
<%
' Chamando Funções, que fazem o Upload funcionar
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin

' Recuperando os Dados Digitados ----------------------
Nome = UploadRequest.Item("Nome").Item("Value")
Mensagem = UploadRequest.Item("Mensagem").Item("Value")
Cidade = UploadRequest.Item("Cidade").Item("Value")
Email = UploadRequest.Item("Email").Item("Value")

data = (date)
hora = (time)


'-------------foto1--------------
' Tipo de arquivo que esta sendo enviado
tipo_foto = UploadRequest.Item("foto").Item("ContentType")


' Caminho completo dos arquivos enviados
caminho_foto = UploadRequest.Item("foto").Item("FileName")


' Nome dos arquivos enviados
nome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))

' Conteudo binario dos arquivos enviados
foto = UploadRequest.Item("foto").Item("Value")


' pasta onde as imagens serao guardadas
pasta = Server.MapPath("imagens/")
nome_foto = "/"&nome_foto

' pasta + nome dos arquivos
cfoto = "imagens/" + nome_foto



' Fazendo o Upload do arquivo selecionado
if foto <> "" then
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(pasta & nome_foto)
For i = 1 to LenB(foto)
MyFile.Write chr(AscB(MidB(foto,i,1)))
Next
MyFile.Close
end if


'---Fim---

' Conecta-se ao Banco de Dados
url_conexao = Server.MapPath("../../Dados/Database11.mdb")
set conexao = Server.CreateObject("ADODB.Connection")
conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao 

' cadastra os dados no banco de dados
sql = "Insert into Mural (nome,email,cidade,mensagem,foto,data,hora) values ('"& nome &"', '"& email &"', '"&cidade &"', '"&mensagem &"', '"& cfoto &"', '"& data &"', '"& hora &"')"
Conexao.Execute(sql)

' Mostra Mensagem de Confirmação na Tela
Response.write "Obrigado pelo recado"

' Redireciona após 5 segundos
response.write "<meta http-equiv='refresh' content='3; url=form.asp'/>"
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque não faz assim, sempre que alguem não envie a foto você guarda no campo "semfoto.png", esta foto você já tem na pasta,

 


if foto <> "" then

'faz upload da foto

else
foto = "semfoto.png"

end if

'depois no sql você insere a variavel foto, que vem ou com o nome da foto ou com o nome "semfoto.png"
sql  = "insert...."

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigão.. outra alternativa é você salvar esse campo vazio, e qndo precisar mostrar a foto do usuário você faz a verificação:

 

ex:

if campo_foto = "" then 
campo_foto = "/imagem/sem_foto.png"
end if

dessa forma você economiza espaço no bd...

 

agora analise se essa seria a melhor solução para o seu caso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

melhor coisa, é o If , como no código acima

simples e funcional

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.