Ir para conteúdo

POWERED BY:

Arquivado

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

allanmollo

com Upload Persists Upload

Recommended Posts

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" 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual é linha 33?

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual é linha 33?

 

A linha 33 é esta

filename2 = foto2.FileName

Este trecho da pau porque é o campo que eu não escolhi imagem, então eu tenho que achar uma maneira de verificar isso corretamente, se bem que o jeito que eu fiz est acerto, o que acho que da dando problema é ele entender que o campo vem com alguma coisa mesmo eu não escolhendo nenhuma imagem.

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.