Ir para conteúdo

POWERED BY:

Arquivado

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

Neji

[Resolvido] insercao de imagens e pdf

Recommended Posts

sim eu sei eu tenho assim mas copiei mal para aqui

 

insert into comunicado(titulo,texto,datai,dataf,imagens,anexo) values ('"&titulo1&"','"&texto1&"','"&datai1&"','"&dataf1&"','"&ficheiro&"','"&ficheiro&"')

Compartilhar este post


Link para o post
Compartilhar em outros sites

e agora , você esta conseguindo inserir ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

lol isto é o que tenho desde o inicio, e sim insere mas vai inserir 2 linhas de codigo na bd assim:

 

1º linha

 

cod_id: 1

texto: bla bla bla

datai:10/20/2007

dataf: 10/20/2009

imagens: http://localhost/projecto/imagem.jpg

anexo: http://localhost/projecto/imagem.jpg

 

2º linha

 

cod_id: 2

texto: bla bla bla

datai:10/20/2007

dataf: 10/20/2009

imagens: http://localhost/projecto/anexo.pdf

anexo: http://localhost/projecto/anexo.pdf

 

 

eu quero que insira apenas uma linha

e que fique assim:

 

cod_id: 1

texto: bla bla bla

datai:10/20/2007

dataf: 10/20/2009

imagens: http://localhost/projecto/imagem.jpg

anexo: http://localhost/projecto/anexo.pdf

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hora de inserir você tem que gravar o ID na tabela. Pelo seu INSERT você não está fazendo isso.

é feito um upload por vez, por isso tem o FOR. você naun vai conseguir gravar os dois arquivos ao mesmo tempo no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

porque eu estou a gerar um id automatico para que o administrador nao tenha de colocar o cod id

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas o FOR vai rodar duas vezes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste como esta o codigo atualmente...

ja alguns users, com este problema e resolveram usando o ASP Upload

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois mas o asp upload tem um periodo de 30 dias por isso truquei para o dundas

 

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

<link href="tablecloth/tablecloth.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="tablecloth/tablecloth.js"></script>

<style>

body{
	margin:0;
	padding:0;
	
	font:70% Arial, Helvetica, sans-serif; 
	
	line-height:150%;
	text-align:left;
}
a{
	text-decoration:none;
	color:#057fac;
}
a:hover{
	text-decoration:none;
	color:#999;
}
h1{
	font-size:140%;
	margin:0 20px;
	line-height:80px;	
}
h2{
	font-size:120%;
}
#container{
	margin:0 auto;
	width:680px;
	background:#fff;
	padding-bottom:20px;
}
#content{margin:0 20px;}
p.sig{	
	margin:0 auto;
	width:680px;
	padding:1em 0;
}
form{
	margin:1em 0;
	padding:.2em 20px;
	
}
</style>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<form  method="post" enctype="multipart/form-data" name="cadastro" onSubmit="return validaForm()" action="inserircomunicado2.asp">

<%
SET RS=Conexao.Execute("COMUNICADO")

IF RS.EOF THEN

Response.Write "<script type=""text/javascript"">" & vbCrLf
Response.Write "<!--" & vbCrLf
Response.Write "alert ('Ainda Nao tem registos Inseridos');" & vbCrLf
Response.Write "-->" & VbCrLf
Response.Write "</script>" & vbCrLf



			Set RS = Conexao.Execute("SELECT * FROM comunicado ")
	END IF		
			
		%>
<center>

<br>

<div id="container">
<table border=2 >

<td style="border-left-width: 1px;border-left-style: solid;">Titulo:</td><td><input type="text" name="titulo"></td>

<tr>

<td>Texto:</td><td>
	 <input type="hidden" id="FCKeditor1___Config" style="display:none" name="texto"/>
	 <iframe id="FCKeditor1___Frame" src="fckeditor/editor/fckeditor.html?InstanceName=texto&Toolbar=Default" name="texto" id="FCKeditor1___Config"  width="700%" height="400" frameborder="0"  scrolling="no" ></iframe> <br />


</td>
</tr>

<tr>
<td>Data Inicio:</td><td><input type="text" name="datai" ></td>
</tr>
<tr>
<td>Data Fim:</td><td><input type="text" name="dataf" ></td>
</tr>
<tr>
<th>Insira o Endereco Imagem:</th><td><input type="file" size="40" name="img00" /></td></tr><tr>
	   <th>Nome da Imagem:</th><td><input type="text" size="40" name="text2" /></tr>
<tr>
<th>Insira anexo:</th><td><input type="file" size="40" name="img00" /></td></tr><tr>
	   <th>Nome do ANEXO</th><td><input type="text" size="40" name="text2" /></tr>

</table>

<input type="hidden" name="codigo" value="codigo">

<p>
<p>


<input name="enviar" type="submit" value="enviar">

</form>
</table>


<script type="text/javascript">

function validaForm(){
		   d = document.cadastro;
		   //validar nome
		   if (d.titulo.value == ""){
					alert("O campo " + d.titulo.name + " deve ser preenchido!");

		   
			d.titulo.focus();
					return false;
		   }
	  
		 
	  
	   
   
		 //validar data de nascimento datai
		 erro=0;
		 hoje = new Date();
		anoAtual = hoje.getFullYear();
		 barras = d.datai.value.split("/");
		if (barras.length == 3){
				   dia = barras[0];
				   mes = barras[1];
				  ano = barras[2];
				   resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4));
				  if (!resultado) {
							 alert("Formato de data invalido!");
							 d.datai.focus();
							 return false;
				   }
		} else {
				  alert("Formato de data inicial invalido!");
				  d.datai.focus();
				  return false;

  }
	   
   
	   
   //validar data do jogo dataf
		 erro=0;
		 hoje = new Date();
		anoAtual = hoje.getFullYear();
		 barras = d.dataf.value.split("/");
		if (barras.length == 3){
				   dia = barras[0];
				   mes = barras[1];
				  ano = barras[2];
				   resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4));
				  if (!resultado) {
							 alert("Formato de data invalido!");
							 d.dataf.focus();
							 return false;
				   }
		} else {
				  alert("Formato de dataf  invalido!");
				  d.dataf.focus();
				  return false;
		 }
	 
		 return true;



}</script>

<% 
		  
		%>

e

<!--#include file="conn.asp" -->
<html>
<head>
<title>AspUpload : Upload Simples</title>
</head>
<%
' Cria uma instância do controle
Set objUpload = Server.CreateObject("Dundas.Upload.2")

objUpload.UseUniqueNames = False

' Limita o tamanho máximo do ficheiro em 1MB

objUpload.MaxFileSize = 22550000
' Salva o ficheiro
objUpload.Save("c:\Inetpub\wwwroot\estagio")

For Each File in objUpload.Files
	ficheiro= File.Path
	titulo1=objUpload.Form("titulo")
	texto1=objUpload.Form("texto")
datai1=objUpload.Form("datai")
dataf1=objUpload.Form("dataf")  

ficheiro = replace(replace(ficheiro,"\","/"),"c:/Inetpub/wwwroot/", "http://localhost/")
	sql = "insert into comunicado(titulo,texto,datai,dataf,imagens,anexo) values ('"&titulo1&"','"&texto1&"','"&datai1&"','"&dataf1&"','"&ficheiro&"','"&ficheiro&"')"
	
	 Conexao.Execute(SQL)
Next

If Err <> 0 Then
Response.Write "Erro. " & Err.Description
Else
Response.Write "Upload realizado com sucesso."
End If

Set objUpload = Nothing
Conexao.Close
%>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

no INSERT, você esta passando 2 vezes o

para imagens e anexo '"&ficheiro&"','"&ficheiro&"'

Compartilhar este post


Link para o post
Compartilhar em outros sites

There are more columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.

/estagio/inserircomunicado2.asp, linha 29

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta mensagem de erro aparece quando você tenta inserir uma linha em uma tabela e não há mais colunas em uma tabela que você tenha fornecido na cláusula VALUES.A declaração INSERT não pode ser comprometida e é revertida.Ambos devem conter exactamente o mesmo número de argumentos.

verifique o se banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora fiz o seguinte:

 

sql = "insert into comunicado(titulo,texto,datai,dataf,imagens,anexo) values ('"&titulo1&"','"&texto1&"','"&datai1&"','"&dataf1&"','"&ficheiro&"')"

 

retirei o anexo e o ficheiro, e faz me exactamente a mesma coisa adiciona me 2 linhas

 

sql = "insert into comunicado(titulo,texto,datai,dataf,imagens) values ('"&titulo1&"','"&texto1&"','"&datai1&"','"&dataf1&"')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz a seguinte alteraçao

 

For Each File in objUpload.Files
   ficheiro =  ficheiro & ",'" &File.Path & "'"
Next
	titulo1=objUpload.Form("titulo")
	texto1=objUpload.Form("texto")
datai1=objUpload.Form("datai")
dataf1=objUpload.Form("dataf")  

ficheiro = replace(replace(ficheiro,"\","/"),"c:/Inetpub/wwwroot/", "http://localhost/")
	sql = "insert into comunicado(titulo,texto,datai,dataf,imagens,anexo) values ('"&titulo1&"','"&texto1&"','"&datai1&"','"&dataf1&"','"&ficheiro&"','"&ficheiro&"')"
	
	 Conexao.Execute(SQL)


If Err <> 0 Then
Response.Write "Erro. " & Err.Description
Else
Response.Write "Upload realizado com sucesso."
End If

e deu me este erro:

 

Tipo de erro:
Microsoft OLE DB Provider for SQL Server (0x80040E14)
Incorrect syntax near 'http:'.
/estagio/inserircomunicado2.asp, linha 30

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a ortografia, veja se não tem nenhum nome de coluna invalido ,ou se a coluna a qual você se refere na Base de Dados não foi encontrada.

E dê um response.write na sua instrução SQL, para ver o que esta sendo passado,veja tb se esta passando os dados com o tipo correto

 

ou tb talvez esteja tentando quer utilizar uma palavra reservada como uma coluna ou alias nome (ou utilizar uma coluna nome que começa com um número de caracteres alfanuméricos ou não), não delimitar um valor adequado, ou realmente tem um erro de sintaxe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste aqui o SQL Neji.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficheiro = ""

For Each File in objUpload.Files

ficheiro = ficheiro & "*" & replace(replace(File.Path,"\","/"),"c:/Inetpub/wwwroot/", "http://localhost/")

Next

ficheiro = split(ficheiro,"*")

 

sql = "insert into comunicado(titulo,texto,datai,dataf,imagens,anexo) values ('"&titulo1&"','"&texto1&"','"&datai1&"','"&dataf1&"','" & ficheiro(1) &"','" & ficheiro(2) & "')"

Se der erro poste o Response.Write sql : Response.End 'antes do Conexao.Execute

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ligação para o servidor foi reposta enquanto a página estava a ser carregada.

 

 

A ligação à rede foi interrompida enquanto era negociada uma ligação. Por favor tente novamente.

 

<!--#include file="conn.asp" -->
<html>
<head>
<title>AspUpload : Upload Simples</title>
</head>
<%
' Cria uma instância do controle
Set objUpload = Server.CreateObject("Dundas.Upload.2")

objUpload.UseUniqueNames = False

' Limita o tamanho máximo do ficheiro em 1MB

objUpload.MaxFileSize = 22550000

' Salva o ficheiro
objUpload.Save("c:\Inetpub\wwwroot\estagio")

ficheiro = ""
For Each File in objUpload.Files
   ficheiro =  ficheiro & "*" & replace(replace(File.Path,"\","/"),"c:/Inetpub/wwwroot/", "http://localhost/")
Next
ficheiro = split(ficheiro,"*")
 titulo1=objUpload.Form("titulo")
	texto1=objUpload.Form("texto")
datai1=objUpload.Form("datai")
dataf1=objUpload.Form("dataf")  

sql = "insert into comunicado(titulo,texto,datai,dataf,imagens,anexo) values ('"&titulo1&"','"&texto1&"','"&datai1&"','"&dataf1&"','" & ficheiro(1) &"','" & ficheiro(2) & "')"

Response.Write sql
Response.End 
	 Conexao.Execute(SQL)
Next

If Err <> 0 Then
Response.Write "Erro. " & Err.Description
Else
Response.Write "Upload realizado com sucesso."
End If

Set objUpload = Nothing
Conexao.Close
%>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja funciona tinha me esquecido de tirar o next depois do Conexao.Execute(SQL) muito obrigado hargon xanburzum e scorpio

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.