Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera, to com alguns problemas para fazer o upload de alguns arquivos de um formulario e salvar no banco. O meu problema é o seguinte:
Tenhum um form com alguns campos e 3 campos de upload de imagens. Eu posso subir 1, 2 ou 3 imagens. Quando subo as 3 imagens da tudo certo, salva as imagens na pasta certa e o nome no banco, mas quando escolho 1 imagem apenas ou 2 o problema acontece. Aparece este erro:
Microsoft VBScript runtime error '800a01a8'
Object required
/new/cadastro/insert_into.asp, line 33
Acredito eu que eu tenha que fazer uma forma de verificar se o campo da imagem quando não escolhido veio vazio ou não e salvar ele como nulo ou como "" no banco certo. Pois eu fiz isso e naum deu certo. E quando dou um response.write nos campos pra verificar se ele é false ou true, mesmo não selecionado eles vem como false se ele é nulo. Eu estou analisando desta forma:
response.write(IsNull(Upload.Files("foto2")))
response.end
segue o código para vcs verem:
Arquivo do Form:
<%
'Check if user is logged in
if Session("name") = "" then
'If not, go to login page
Response.Redirect("http://www.gabylacos.com.br/new/login/login.asp")
end if
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml"](http://www.w3.org/1999/xhtml) xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
<link href="liks_etc.css" rel="stylesheet" type="text/css" />
<title>Gaby Laços - Sistema de Gerenciamento de Produtos</title>
<script type="text/javascript">
function valida_campo()var nome = document.form.nome.value
if (nome==""){
alert("Entre com o nome do produto!");
document.form.nome.focus()
return false
}
var referencia = document.form.referencia.value
if (referencia==""){
alert("Entre com a referência do produto!");
document.form.referencia.focus()
return false
}
var valor=document.form.valor.value;
if (valor==""){
alert("Entre com o valor do produto!")
document.form.valor.focus()
return false
}
var quantidade=document.form.quantidade.value;
if (quantidade==""){
alert("Entre com o valor do produto!")
document.form.quantidade.focus()
return false
}
var categoria=document.form.categoria.value;
if (categoria==""){
alert("Entre com o valor do produto!")
document.form.categoria.focus()
return false
}
var foto1=document.form.foto1.value;
if (foto1==""){
alert("Escolha a Imagem Número 1")
document.form.foto1.focus()
return false
}
//var foto2=document.form.foto2.value;
//if (foto2==""){
//alert("Escolha a Imagem Número 2")
//document.form.foto2.focus()
//return false
//}
//var foto3=document.form.foto3.value;
//if (foto3==""){
//alert("Escolha a Imagem Número 3")
//document.form.foto3.focus()
//return false
//}
}
</script>
<script language="javascript">
function verifica(form)
{
if (form.foto2.value.length=="")
{
return(false);
}
return(true);
}
</script>
<script type="text/javascript">
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
</script>
</head>
<body>
<div class="geral">
<!--#include file="include/inc_topo.asp" -->
<div class="conteudo">
<!--#include file="include/inc_menu.asp" -->
<div>
<h1>Cadastro de Produtos</h1>
<div style="position:absolute;top:155px;right:20px;font-size:12px;">
<a href="#" title="" onclick="MM_openBrWindow('tabelaprodutos.asp','','scrollbars=yes,width=370,height=670')">» ver tabela de produtos</a>
</div>
<div class="formbox">
<form method="post" action="insert_into.asp" name="form" class="cssform" enctype="multipart/form-data" onsubmit="return valida_campo();return(verifica(this))">
<p><label for="nome" style="width:150px;">Nome do produto:</label><input type="text" name="nome" size="30" class="input" /></p>
<p><label for="referencia">Referência:</label><input type="text" name="referencia" size="5" maxlength="4" class="input" /></p>
<p><label for="valor">Valor:</label><input type="text" name="valor" size="5" class="input" maxlength="5" /> <span style="font-size:9px;">Somente o valor em números</span></p>
<p><label for="quantidade">Quantidade:</label><input type="text" name="quantidade" size="1" maxlength="2" class="input" /> <span style="font-size:9px;">Unidades</span></p>
<p><label for="categoria">Categoria:</label>
<select name="categoria" class="input">
<option value=""></option>
<option value="2">Laços de EVA</option>
<option value="3">Novidades</option>
<option value="19">Times</option>
<option value="4">Ano Novo</option>
<option value="5">Natal</option>
<option value="6">Dia dos Namorados</option>
<option value="7">Festa Junina</option>
<option value="8">Helloween</option>
<option value="9">Páscoa</option>
<option value="10">Laços Diversos</option>
<option value="11">Laços de Ponta</option>
<option value="12">Laços Borboleta</option>
<option value="13">Gravatas Fêmea</option>
<option value="14">Gravatas Macho</option>
<option value="15">Gravatas Gatos</option>
<option value="16">Gravatas Borboleta</option>
<option value="17">Gargantilha Cetim</option>
<option value="18">Gargantilha Elástica</option>
</select></p>
<p><label for="foto1">Foto 1:</label><input type="File" name="foto1" style="border:solid 1px black;background-color:white;" /> <span style="font-size:9px;">Até 400 x 320 px.</span> </p>
<p><label for="foto2">Foto 2:</label><input type="File" name="foto2" value="<%if IsNull("foto2") or IsEmpty("foto2") then foto2 = "false" end if%>" style="border:solid 1px black;background-color:white;" /> <span style="font-size:9px;">Até 400 x 320 px.</span></p>
<p><label for="foto3">Foto 3:</label><input type="File" name="foto3" value="<%if IsNull("foto3") or IsEmpty("foto3") then foto3 = "false" end if%>" style="border:solid 1px black;background-color:white;" /> <span style="font-size:9px;">Até 400 x 320 px.</span></p>
<div style="margin-left:155px;">
<input type="submit" value="Enviar" name="enviar" class="botao" />
</div>
</form>
</div>
</div>
</div>
<!--#include file="include/inc_rodape.asp" -->
</div>
</body>
</html>
Arquivo ASP que faz o upload e salva no banco:
<%
'Força a declaração de todas as variáveis
Option Explicit
'Não deixa informações no Cache
Response.Expires = 0
'response.buffer=true
'Server.ScriptTimeout = 99999999
'Declaração das variáveis
Dim objConn, objRs, strQuery, strConnection, nome, referencia, valor, quantidade, categoria, upload, File, File1, File2, File3, filename1, filename2, filename3, foto1, foto2, foto3
Set Upload = Server.CreateObject("Persits.Upload")
Upload.OverwriteFiles = True
Upload.Save ("e:\home\gabylacos\web\new\img")
'response.write(IsNull(Upload.Files("foto2")))
'response.end
If Not Upload.Files("foto1") Is Nothing Then
filename1 = ""
else
Set foto1 = Upload.Files("foto1")
filename1 = foto1.FileName
end if
'if IsNull(Upload.Files("foto2")) or IsEmpty(Upload.Files("foto2")) Then
If Not Upload.Files("foto2") Is Nothing Then
filename2 = ""
else
Set foto2 = Upload.Files("foto2")
filename2 = foto2.FileName
end if
'if IsNull(Upload.Files("foto3")) or IsEmpty(Upload.Files("foto3")) Then
If Not Upload.Files("foto2") Is Nothing Then
filename3 = ""
else
Set foto3 = Upload.Files("foto3")
filename3 = foto3.FileName
end if
'Response.Write fileName1 &"<br>"
'Response.Write fileName2 &"<br>"
'Response.Write fileName3 &"<br>"
'Response.end
'Set File = Upload.Files("foto")
'Filename = file.extractfilename
'If IsNull(Upload.Files("foto1")) or IsEmpty(Upload.Files("foto1")) Then
'Set File1 = Upload.Files("foto1")
'Filename1 = Trim("")
'else
'Set File1 = Upload.Files("foto1")
'Filename1 = file1.extractfilename
'end if
'If IsNull(Upload.Files("foto2")) or IsEmpty(Upload.Files("foto1")) Then
'Set File2 = Upload.Files("foto2")
'Filename2 = Trim("")
'else
'Set File2 = Upload.Files("foto2")
'Filename2 = file2.extractfilename
'end if
'Atribuição dos valores as respectivas variáveis
nome = Upload.Form("nome")
referencia = Upload.Form("referencia")
valor = Upload.Form("valor")
quantidade = Upload.Form("quantidade")
categoria = Upload.Form("categoria")
'Cria o objeto RecordSet e atribui a variável
Set objConn = Server.CreateObject("ADODB.Connection")
'Abre a conexão com o banco de dados utilizando o Drive {Microsoft Access...
'(para utilizar outro, ex: Paradox é só substituir o Drive pelo do Paradox)
'(*.mdb) indica que o arquivo utiliza extensão mdb
objConn.Open "DBQ=" & Server.MapPath("dados.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
'Insere os dados na tabela aberta
strQuery = "INSERT INTO produtos (nome,referencia,valor,quantidade,categoria,imagem,imagem1,imagem2) VALUES ('"&nome&"','"&referencia&"','"&valor&"','"&quantidade&"','"&categoria&"','"&filename1&"','"&filename2&"','"&filename3&"')"
'Caso ocorra um erro esta função de erro será chamada
On error Resume Next
'Executa a inserção no Banco de Dados
Set ObjRs = objConn.Execute(strQuery)
'Fecha o Objeto de Conexão
objConn.close
'"APAGA" qualquer instancia que possa ter no objeto objRs e objConn
Set objRs = Nothing
Set objConn = Nothing
'Caso a função On Error Resume Next não tenha sido chamada o objeto err será = a 0
if err = 0 Then
'Redireciona o usuário caso não tenha ocorrido erro na transação
response.redirect "sucesso.asp"
end if
%>
Eu só gostaria de saber porque mesmo eu não selecionando os campos de imagem eles vem como se tivesem sido escolhidos no meu response.write.
Abraços
Carregando comentários...