Ir para conteúdo

POWERED BY:

Arquivado

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

Blaudemon

Problema Com Dundas Upload

Recommended Posts

Boa tarde pessoal! estou com um problema pra fazer o upload de fotos... segue abaixo o as paginas que enviam e efetuam o upload

envia_foto.htm

 

....

<body>
<form action="grava_foto.asp" method="post" enctype="multipart/form-data" name="blogfrm" id="blogfrm">
  <table width="433" height="65" border="1" cellpadding="0" cellspacing="0">
	<tr>
	  <th width="53" height="24" scope="col"><span class="style1">Autor:</span>
		<label></label></th>
	  <th width="374" scope="col"><div align="left">
		<input name="autor" type="text" id="autor" size="50" />
	  </div></th>
	</tr>
	<tr>
	  <th scope="row"><span class="style1">Informação:</span></th>
	  <td><label>
		<textarea name="texto" id="texto" cols="50" rows="5"></textarea>
	  </label></td>
	</tr>
	<tr>
	  <th scope="row"><span class="style1">Foto:</span></th>
	  <td><label>
		<input name="image" type="file" id="image" title="Procurar" size="50"  />
	  </label></td>
	</tr>
  </table>
  <p>
	<label>
	<input type="submit" name="enviar" id="enviar" value="Enviar">
	</label>
  </p>
</form>
</body>
....

 

 

 

Agora a pagina que recebe grava_foto.asp

 

 

<%
On Error Resume Next
Dim autor, data, texto, comentario, foto, objupload, filename


Set conn = server.CreateObject("ADODB.connection")
conn.Open "DBQ="& server.mappath("..\admin\bandapoc.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"

On Error Resume Next

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

objUpload.UseVirtualDir = True
objUpload.UseUniqueNames = False
GetExtensionName = false
objUpload.Save "C:\Inetpub\vhosts\xxx\httpdocs\images"

autor = objUpload.Form("autor")
texto = objUpload.Form("texto")
data = getdate()
foto=objUpload.GetFileName(objUpload.Files(0).Path)

response.Write("Size: " & objUploadedFile.Size & "<br>")
For Each objUploadedFile in objUpload.Files
	Response.Write("Size: " & objUploadedFile.Size & "<br>")
Next


For Each objUploadedFile in objUpload.Files
	Response.Write("TagName: " & objUploadedFile.TagName & "<br>")
Next

For Each objFile In objUpload.Files

	If InStr(1,objFile.ContentType,"image") <> 0 Then

			filename = objFile.Binary
			nome = objFile.TagName
			response.Write("tagname" & objFile.TagName)
	End If

Next

executar = " INSERT INTO BLOG (autor,foto,data,info) " & "VALUES ('" & autor & "','" & foto & "','" & getdate() & "','" & texto & "')"

conn.execute executar
conn.Close
Set objUpload = Nothing
If Err <> 0 Then 
Response.Write Err.Description & " " & Err.Number & "<br>"
Else
response.Write("<script>alert('Cadastro Efetudo com Sucesso');</script>")
End if

%>

....

 

Alem de não fazer o upload ainda aparece este erro: Command text was not set for the command object. -2147217908

 

Se alguém puder me ajudar agradeço desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem sim..o site já está hospedado no servidor e estou fazendo os testes lá...Segundo o que eles me passaram tem Instalado...Mas eu rodei um script para verificar os componentes instalados lá e não apareceu 1 componente instalado..mas agora ate onde isso é verdade eu não sei :\

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Inserir Foto</title>
</head>
<%
On Error Resume Next
Dim autor, data, texto, comentario, foto, filename, executar
dim conn, strPath, strArquivo
dim rs 


Dim objUpload
set objUpload = nothing

On Error Resume Next

strpath = server.MapPath("..\images\")

'create an instance of the Uplaod control
set objUpload = server.CreateObject("Dundas.Upload.2")
if  err.number <> 0 then
	Response.write "Erro =" & err.description
end if


objUpload.UseVirtualDir = True
objUpload.UseUniqueNames = false
objupload.GetExtensionName = true
objUpload.SaveToMemory

objUpload.Save (server.MapPath("..\images\"))

autor = objUpload.Form("autor")
texto = objUpload.Form("texto")
data = date
'strArquivo = objUpload.GetFileName(objUpload.originalpath)

For Each objUploadedFile in objUpload.Files
foto = objUpload.GetFileName(objUploadedFile.OriginalPath)
Next

response.Write( "autor: " & autor & "<br>")
Response.Write( "texto: " & texto & "<br>")
Response.Write( "data: " & data & "<br>")
Response.Write( "Nome: " & foto & "<br>" & strArquivo & "<br>")
response.Write("Size: " & objUpload.Size & "<br>")

For Each objUploadedFile in objUpload.Files
	Response.Write("Size: " & objUploadedFile.Size & "<br>")
Next


For Each objUploadedFile in objUpload.Files
	Response.Write("TagName: " & objUploadedFile.TagName & "<br>")
		'strArquivo = objUploadedfile.GetFileName(objUploadedfile.originalpath)
		
		'objUploadedfile.saveas strPath & "/" & strArquivo
Next


For Each objFile In objUpload.Files

	If InStr(1,objFile.ContentType,"image") <> 0 Then
	
			'filename = objFile.Binary
			'nome = objFile.TagName
			response.Write("tagname: " & objFile.TagName & "<br> -" & filename & "-<br>")

	End If

Next
strarquivo = server.MapPath("..\images\") & "\" & foto
response.Write strarquivo & "<br>"


Set conn = server.CreateObject("ADODB.connection")
conn.Open "DBQ="& server.mappath("..\admin\bandapoc.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
set rs = Server.CreateObject("ADODB.Recordset")

executar = "INSERT INTO BLOG (autor,foto,data,info) VALUES ('" & autor & "','" & strArquivo & "','" & data & "','" & texto & "')"
conn.execute executar
'rs.open executar, conn
conn.Close

Set objUpload = Nothing

If Err <> 0 Then 
Response.Write Err.Description & " " & Err.Number & "<br>"
Else
response.Write("<script>alert('Cadastro Efetudo com Sucesso');</script>")
End if

%>

<body>
</body>
</html>

 

O código esta assim agora..ele está mostrando as informações necessárias como tamanho, nome da foto (isso é o mais importante) mas ele não stá salvando a foto na pasta e nem grava do Bd..ele esta dando o seguinte erro: Object doesn't support this property or method 438

 

o treco chato pra dar dor de cabeça x)

Se alguém puder ajudar ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acrescente na linha que verifica se houve erro para que ele apresente a linha do erro:

Response.Write("Descrição: "& Err.Description &"<BR>Número do erro: "& Err.Number &"<br>Linha do erro: "& Err.Line)

Substitua por essa acima e poste novamente o que exibir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde! Resolvi parte dos Problemas..agora ele esta gravando no BD, mas ainda não faz o upload pro server, se eu tirar o ObjUpload.SaveToMemory ele já não mostra mais o tamanho, nome da foto..e nem pega os outros dados do Form... E o mais estranho...la no tratamento do erro no final..mesmo ele inserindo os dados no BD ele não da o alerta de que foi cadastrado com sucesso :blink:

Se alguem puder decifrar/ajudar x)

Agradeço desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não mostra a mensagem de sucesso porque provavelmente está gerando algum erro e está caindo na condição de cima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas ai é que tá! ele não mostra o Erro gerado

If Err <> 0 Then 
Response.Write Err.Description & " " & Err.Number & "<br>" <<--AQUI
Else
response.Write("<script>alert('Cadastro Efetudo com Sucesso');</script>")
End if
Antes ele dava o erro, mas mudei objUpload.UseUniqueNames = false para True e parou o erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

para aparecer o erro precisa tirar o On Error Resume Next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se você já sabe para que serve UseUniqueNames, mas só colocar true ou false e parar o erro não adianta.

 

O ideal é ler a documentação do componente e ver o que cada propriedade ou método faz, se é útil ou não, se depende de outra propriedade para funciona ou não e etc...

 

Para ver o erro faça o que o Mario sugeriu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim...eu sei pra que serve o UseUniqueNames =] ...tirei o on error resume next..arrumei onde ele estava dando erro...agora aparece a msg de gravado com sucesso..Mas ainda nao salva no server...

 

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Inserir Foto</title>
</head>
<%
'On Error Resume Next
Dim autor, data, texto, comentario, foto, filename, executar
dim conn, strPath, strArquivo
dim rs 


Dim objUpload
'set objUpload = nothing


strpath = server.MapPath(".\images\")

'create an instance of the Uplaod control
set objUpload = server.CreateObject("Dundas.Upload.2")

if  err.number <> 0 then
	Response.write "Erro =" & err.description
end if


objUpload.UseVirtualDir = false
objUpload.UseUniqueNames = true
'objupload.GetExtensionName = true
objUpload.SaveToMemory
If objUpload.DirectoryExists ("C:\Inetpub\vhosts\bandapoc.com.br\httpdocs\images\") = true then

objUpload.Save "..\images\"  'se eu deixasse o usevirtualdir como true ele falava que não podia identificar o diretorio virtual...colocando o caminho inteiro ele e trocando pra falser o virtualdir não deu o erro..
end if
autor = objUpload.Form("autor")
texto = objUpload.Form("texto")
data = date
'strArquivo = objUpload.GetFileName(objUpload.originalpath)

For Each objUploadedFile in objUpload.Files
foto = objUpload.GetFileName(objUploadedFile.OriginalPath)
Next

response.Write( "autor: " & autor & "<br>")
Response.Write( "texto: " & texto & "<br>")
Response.Write( "data: " & data & "<br>")
Response.Write( "Nome: " & foto & "<br>")
'response.Write("Size: " & objUpload.Size & "<br>")

For Each objUploadedFile in objUpload.Files
	Response.Write("Size: " & objUploadedFile.Size & "<br>")
Next


For Each objUploadedFile in objUpload.Files
	Response.Write("TagName: " & objUploadedFile.TagName & "<br>")
		'strArquivo = objUploadedfile.GetFileName("objUploadedfile.originalpath")
		
		'objUploadedfile.saveas strPath & "/" & strArquivo
Next

strarquivo = server.MapPath("..\images\") & "\" & foto
For Each objFile In objUpload.Files

	If InStr(1,objFile.ContentType,"image") <> 0 Then
	
			'filename = objFile.Binary
			'nome = objFile.TagName
			response.Write("tagname: " & objFile.TagName & "<br> " & strarquivo & "<br>")

	End If

Next

response.Write (strarquivo & "<<<---<br>")


Set conn = server.CreateObject("ADODB.connection")
conn.Open "DBQ="& server.mappath("..\admin\bandapoc.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
set rs = Server.CreateObject("ADODB.Recordset")

executar = "INSERT INTO BLOG (autor,foto,data,info) VALUES ('" & autor & "','" & strArquivo & "','" & data & "','" & texto & "')"
response.Write(executar)
conn.execute executar
'rs.open executar, conn
conn.Close

Set objUpload = Nothing

If Err <> 0 Then 
'Response.Write Err.Description & " " & Err.Number & "<br>"
Response.Write("Descrição: "& Err.Description &"<BR>Número do erro: "& Err.Number &"<br>Linha do erro: "& Err.Line)
Else
response.Write("<br>Cadastro Efetudo com Sucesso")
End if
%>

<body>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não está entrando neste IF:

If objUpload.DirectoryExists ("C:\Inetpub\vhosts\bandapoc.com.br\httpdocs\images\") = true then

objUpload.Save "..\images\" 
end if

Coloca um response.end acima da linha do SAVE e faça o teste. Se estiver entrando, deverá ficar uma tela branca.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou branco a tela.. sem o Response.End aparece os dados abaixo

 

autor: teste

texto: teste

data: 13/10/2008

Nome: Radioativo.jpg

Size: 70658

TagName: file1

tagname: file1

C:\Inetpub\vhosts\bandapoc.com.br\httpdocs\images\Radioativo.jpg

C:\Inetpub\vhosts\bandapoc.com.br\httpdocs\images\Radioativo.jpg<<<---

INSERT INTO BLOG (autor,foto,data,info) VALUES ('teste','C:\Inetpub\vhosts\bandapoc.com.br\httpdocs\images\Radioativo.jpg','13/10/2008','teste')

Cadastro Efetudo com Sucesso

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas cadastrou?

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.