Bom primeiro começando a agradecendo o dark0 , pois tava precisando de um UPLOAD de imagem, também agradecendo aos moderadores do forúm imasters o Mário Monteiro, o hargon e o Ted'k que me ajudaram a fazer as adaptações nesse script q ficou muito massa, estou postando o código completo ... Vamos lá !!!
Estou utilizando banco de dados MySql, hehehe novidade né ... Criando a base de dados upload e a tabela produtos e categorias
CREATE DATABASE upload;
CREATE TABLE categorias(
id int(10) unsigned not null auto_increment,
classificacao varchar(100) not null,
primary key (id));
CREATE TABLE produtos(
id int(10) unsigned not null auto_increment,
id_categoria varchar(100) not null,
cod_produto varchar(100) not null,
descricao varchar(100) not null,
foto varchar(100) not null,
primary key (id));
conexao.asp // eu salvei dentro de uma pasta config ... opcional
<%
dim cnn
sub abre_conectar
set cnn=server.CreateObject("adodb.connection")
cnn.open "upload"
end sub
sub fecha_conectar
cnn.close
Set cnn = nothing
end sub
%>
upload_funcoes.asp // página q faz o upload sem componentes, não altere
<%
' Upload Sem componentes ---------------------------------------
Sub BuildUploadRequest(RequestBin)
on error resume next
PosBeg = 1
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))
boundary = MidB(RequestBin, PosBeg, PosEnd - PosBeg)
BoundaryPos = InStrB(1, RequestBin, boundary)
Do Until (BoundaryPos = InStrB(RequestBin, boundary & getByteString("--")))
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
Pos = InStrB(BoundaryPos, RequestBin, getByteString("Content-Disposition"))
Pos = InStrB(Pos, RequestBin, getByteString("name="))
PosBeg = Pos + 6
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34)))
Name = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
PosFile = InStrB(BoundaryPos, RequestBin, getByteString("filename="))
PosBound = InStrB(PosEnd, RequestBin, boundary)
If PosFile <> 0 And (PosFile < PosBound) Then
PosBeg = PosFile + 10
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34)))
FileName = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
UploadControl.Add "FileName", FileName
Pos = InStrB(PosEnd, RequestBin, getByteString("Content-Type:"))
PosBeg = Pos + 14
PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))
ContentType = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
UploadControl.Add "ContentType", ContentType
PosBeg = PosEnd + 4
PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2
Value = MidB(RequestBin, PosBeg, PosEnd - PosBeg)
Else
Pos = InStrB(Pos, RequestBin, getByteString(Chr(13)))
PosBeg = Pos + 4
PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2
Value = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
End If
UploadControl.Add "Value", Value
UploadRequest.Add Name, UploadControl
BoundaryPos = InStrB(BoundaryPos + LenB(boundary), RequestBin, boundary)
Loop
End Sub
Function getByteString(StringStr)
For i = 1 To Len(StringStr)
Char = Mid(StringStr, i, 1)
getByteString = getByteString & ChrB(AscB(Char))
Next
End Function
Function getString(StringBin)
getString = ""
For intCount = 1 To LenB(StringBin)
getString = getString & Chr(AscB(MidB(StringBin, intCount, 1)))
Next
End Function
' Fim upload sem Componentes -----------------------------------------
%>
inserir_produto.asp
<!-- #include file = "upload_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 ----------------------
classificacao = UploadRequest.Item("id_categoria").Item("Value")
cod_produto = UploadRequest.Item("cod_produto").Item("Value")
descricao = UploadRequest.Item("descricao").Item("Value")
'id_categoria = UploadRequest.Item("id_categoria").Item("Value")
' 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
' Conecta-se ao Banco de Dados %>
<!-- #include file="config/conexao.asp"-->
<%
call abre_conectar
' cadastra os dados no banco de dados
sql = "insert into produtos (id_categoria,cod_produto,descricao,foto) values ('"&classificacao&"', '"&cod_produto&"', '"&descricao&"', '"&cfoto&"')"
set tab = cnn.execute(sql)
call fecha_conectar
set tab = nothing
' Mostra Mensagem de Confirmação na Tela
Response.write "Dados Cadastrados com Sucesso!"
' Redireciona após 5 segundos
response.redirect "produtos.asp"
%>
form_altera_produtos.asp
<!-- #include file = "upload_funcoes.asp" -->
<!-- #include file="config/conexao.asp"-->
<%
call abre_conectar
'sql = "Select * from membros"
'set tab = cnn.execute(sql) %>
<script type="text/javascript">
/***********************************************
* Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com)
* Copyright 2002-2007 by Sharon Paine
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
/* IMPORTANT: Put script after tooltip div or
put tooltip div just before </BODY>. */
var dom = (document.getElementById) ? true : false;
var ns5 = (!document.all && dom || window.opera) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false;
var origWidth, origHeight;
// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }
/////////////////////// CUSTOMIZE HERE ////////////////////
// settings for tooltip
// Do you want tip to move when mouse moves over link?
var tipFollowMouse= true;
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 160;
var offX= 20; // how far from mouse to show tip
var offY= 12;
var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
var tipFontSize= "8pt";
// set default text color and background color for tooltip here
// individual tooltips can have their own (set in messages arrays)
// but don't have to
var tipFontColor= "#000000";
var tipBgColor= "#DDECFF";
var tipBorderColor= "#000080";
var tipBorderWidth= 3;
var tipBorderStyle= "ridge";
var tipPadding= 4;
// tooltip content goes here (image, description, optional bgColor, optional textcolor)
var messages = new Array();
// multi-dimensional arrays containing:
// image and text for tooltip
// optional: bgColor and color to be sent to tooltip
<%
id1 = Request.QueryString("alterar")
sql = "SELECT * FROM produtos WHERE id = "&id1
set tab = cnn.execute(sql) %>
messages[0] = new Array('<%=tab("foto")%>','Imagem Cadastrada',"#FFFFFF");
//////////////////// END OF CUSTOMIZATION AREA ///////////////////
// preload images that are to appear in tooltip
// from arrays above
if (document.images) {
var theImgs = new Array();
for (var i=0; i<messages.length; i++) {
theImgs[i] = new Image();
theImgs[i].src = messages[i][0];
}
}
// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text
var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%"><img src="';
var midStr = '" border="0"></td></tr><tr><td valign="top">';
var endStr = '</td></tr></table>';
////////////////////////////////////////////////////////////
// initTip - initialization for tooltip.
// Global variables for tooltip.
// Set styles
// Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
if (nodyn) return;
tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
tipcss = tooltip.style;
if (ie4||ie5||ns5) { // ns4 would lose all this on rewrites
tipcss.width = tipWidth+"px";
tipcss.fontFamily = tipFontFamily;
tipcss.fontSize = tipFontSize;
tipcss.color = tipFontColor;
tipcss.backgroundColor = tipBgColor;
tipcss.borderColor = tipBorderColor;
tipcss.borderWidth = tipBorderWidth+"px";
tipcss.padding = tipPadding+"px";
tipcss.borderStyle = tipBorderStyle;
}
if (tooltip&&tipFollowMouse) {
document.onmousemove = trackMouse;
}
}
window.onload = initTip;
/////////////////////////////////////////////////
// doTooltip function
// Assembles content for tooltip and writes
// it to tipDiv
/////////////////////////////////////////////////
var t1,t2; // for setTimeouts
var tipOn = false; // check if over tooltip link
function doTooltip(evt,num) {
if (!tooltip) return;
if (t1) clearTimeout(t1); if (t2) clearTimeout(t2);
tipOn = true;
// set colors if included in messages array
if (messages[num][2]) var curBgColor = messages[num][2];
else curBgColor = tipBgColor;
if (messages[num][3]) var curFontColor = messages[num][3];
else curFontColor = tipFontColor;
if (ie4||ie5||ns5) {
var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
tipcss.backgroundColor = curBgColor;
tooltip.innerHTML = tip;
}
if (!tipFollowMouse) positionTip(evt);
else t1=setTimeout("tipcss.visibility='visible'",100);
}
var mouseX, mouseY;
function trackMouse(evt) {
standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
if (tipOn) positionTip(evt);
}
/////////////////////////////////////////////////////////////
// positionTip function
// If tipFollowMouse set false, so trackMouse function
// not being used, get position of mouseover event.
// Calculations use mouseover event position,
// offset amounts and tooltip width to position
// tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip(evt) {
if (!tipFollowMouse) {
standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body
mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
}
// tooltip width and height
var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
// document area in view (subtract scrollbar width for ns)
var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
// check mouse position against tip and window dimensions
// and position the tooltip
if ((mouseX+offX+tpWd)>winWd)
tipcss.left = mouseX-(tpWd+offX)+"px";
else tipcss.left = mouseX+offX+"px";
if ((mouseY+offY+tpHt)>winHt)
tipcss.top = winHt-(tpHt+offY)+"px";
else tipcss.top = mouseY+offY+"px";
if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}
function hideTip() {
if (!tooltip) return;
t2=setTimeout("tipcss.visibility='hidden'",100);
tipOn = false;
}
document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')
</script>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<table width="100%" height="290" border="0">
<tr>
<td height="43"></td>
</tr>
<tr>
<td height="43"></td>
</tr>
<tr>
<td height="241"><div align="center">
<%
On error resume Next
'Dim objConn, stringSQL, strConnection, id, strDBPath
'Deletando registro da tabela contato onde esta a id
if err <> 0 Then%>
<div align="left">
<center><span class="titulo1">Ocorreu algum erro!</span>
</font>
<a href="java script:history.back(-1)" class="link1_inativo">Volta</a></center></div>
<table>
<tr>
<td>
<%else%>
<form name="form1" action="altera_dados_produtos.asp" method="post" enctype="multipart/form-data">
<table border="0" width="502">
<tr>
<td width="109" valign="top" class="titulo1">Classificação</td>
<td width="319"><select name="id_categoria" class="formulario">
<option <%Response.Write("selected=""selected""") %>><%=tab("id_categoria")%></option>
<%call fecha_conectar
set tab = nothing%>
<% call abre_conectar
sql = "Select * from categorias WHERE id > 1 "
set tab = cnn.execute(sql)%>
<%while not tab.EOF %>
<option><%=tab("classificacao")%></option>
<%tab.movenext
wend%>
</select>
<%call fecha_conectar
set tab = nothing%>
<% call abre_conectar
sql = "SELECT * FROM produtos WHERE id = "&id1
set tab = cnn.execute(sql) %>
</td>
</tr>
<tr>
<td width="109" valign="top" class="titulo1">Código Produto</td>
<td width="319"><input name="cod_produto" type="text" class="formulario" value="<%=tab("cod_produto")%>"></td>
</tr>
<tr>
<td width="109" valign="top" class="titulo1">Descrição</td>
<td width="319"><textarea name="descricao" cols="30" rows="5" class="formulario"><%=tab("descricao")%></textarea></td>
</tr>
<tr>
<td width="109" valign="top" class="titulo1">Foto</td>
<td width="319"><a onMouseOver="doTooltip(event,0)" onMouseOut="hideTip()"><input name="foto" type="file" class="formulario"></a>
<input type="hidden" name="id" value="<%=tab("id")%>"></td>
</tr>
<tr>
<td>
<input name="enviar" type="submit" class="formulario" value="Alterar">
</td>
</tr>
</table>
</form>
<%end if%> </td>
</tr>
</table>
</td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>
<!--#include file="config/conexao.asp"-->
<%
call abre_conectar
' 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 ----------------------
id_categoria = UploadRequest.Item("id_categoria").Item("Value")
cod_produto = UploadRequest.Item("cod_produto").Item("Value")
descricao = UploadRequest.Item("descricao").Item("Value")
id = UploadRequest.Item("id").Item("Value")
' 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
sql = "UPDATE produtos SET id_categoria = '"&id_categoria&"', cod_produto='"&cod_produto&"', descricao='"&descricao&"', foto = '"&cfoto&"' WHERE id ="&id
On error Resume Next
set tab = cnn.execute(sql)
else
sql = "UPDATE produtos SET id_categoria = '"&id_categoria&"', cod_produto='"&cod_produto&"', descricao='"&descricao&"' WHERE id ="&id
On error Resume Next
set tab = cnn.execute(sql)
end if
'Fecha o Objeto de Conexão
call fecha_conectar
set tab = nothing
if err = 0 Then
'Redireciona o usuário caso não tenha ocorrido erro na transação
response.redirect "menu.asp"
end if
%>
action_excluir_produtos.asp
<!-- #include file="config/conexao.asp"-->
<%
call abre_conectar
'Option Explicit
Dim objConn, stringSQL, strConnection, array_id, i, sql_id, id,strDBPath
id = Request.QueryString("radio")
'Caso ocorra algum erro os precessos não são interrompidos
'e é passado para a próxima linha de comando
On error Resume Next %><style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="43"></td>
</tr>
<tr>
<tr>
<td height="43"></td>
</tr>
<tr>
<td valign="top">
<div align="left">
<%
if err = 0 and id <> "" then
array_id = split(id,",")
For i=0 to ubound(array_id)
sql_id = sql_id & "produtos.id = " & Trim(array_id(i)) & " OR "
'campo texto, então" & Trim(array_id(i)) & " OR "
'caso numerico '" & Trim(array_id(i)) & "' OR "
Next
sql_id = left(sql_id,(len(sql_id)-4))
sql = "DELETE FROM produtos WHERE "&sql_id&""
set tab = cnn.execute(sql)
call fecha_conectar
set tab = nothing
%>
<table align="center">
<tr bgcolor="">
<td>Seus
dados foram excluídos com sucesso!</td>
</tr>
</table>
<%else%>
<br>
<center>Ocorreu algum erro!<br>
<br>
Nenhum dado foi excluido!</span><br><br>
<a href="java script:history.back(-1)" class="link1_inativo">Volta</a></center></div>
<%End if%> </td>
</tr>
</table>
</td>
</tr>
</table></td>
</tr>
</table>
Bom galera é isso ai ... espero q gostem hehehe ... Dúvidas ou elogios postem ai ... Abraçosssssss
Pergunta
jow
Bom primeiro começando a agradecendo o dark0 , pois tava precisando de um UPLOAD de imagem, também agradecendo aos moderadores do forúm imasters o Mário Monteiro, o hargon e o Ted'k que me ajudaram a fazer as adaptações nesse script q ficou muito massa, estou postando o código completo ... Vamos lá !!!
Estou utilizando banco de dados MySql, hehehe novidade né ... Criando a base de dados upload e a tabela produtos e categorias
conexao.asp // eu salvei dentro de uma pasta config ... opcional produtos.asp upload_funcoes.asp // página q faz o upload sem componentes, não altere inserir_produto.asp form_altera_produtos.asp escolhe_pra_alterar_produtos.asp altera_dados_produtos.asp action_excluir_produtos.aspBom galera é isso ai ... espero q gostem hehehe ... Dúvidas ou elogios postem ai ... Abraçosssssss
Link para o comentário
Compartilhar em outros sites
19 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.