Entre para seguir isso  
Seguidores 0

Script de upload de imagens sem componentes

20 posts neste tópico

Postado · Denunciar post

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 
%>
produtos.asp
<!-- #include file = "upload_funcoes.asp" -->
<!-- #include file="config/conexao.asp"-->
<% call abre_conectar
sql = "Select * from categorias"
set tab = cnn.execute(sql)%>

<form name="form1" action="inserir_produto.asp" method="post" enctype="multipart/form-data">
<table align="center">
<tr>
<td class="titulo1">Classifica&ccedil;&atilde;o:</td>
<td>
<% if not tab.EOF then %>  
                           
    <SELECT NAME="id_categoria" class="formulario">
<%
        while not tab.EOF %>
        <OPTION value="<%=tab("classificacao")%>"><%=tab("classificacao")%></OPTION>             
        <% 
            tab.movenext
        wend 
%>
    </SELECT>
<%
    end if
    call fecha_conectar
    set tab = nothing
%>
</td>

</tr>
<tr>
<td class="titulo1">Código produto:</td>
<td><input name="cod_produto" type="text" class="formulario" size="20"></td>
</tr>
<tr>
<td class="titulo1">Descrição:</td>
<td><textarea name="descricao" cols="30" rows="5" class="formulario"></textarea></td>
</tr>
<tr>
<td class="titulo1">Foto:</td>
<td><input name="foto" type="file" class="formulario" size="14">
</td>
</tr>
  <tr>
    <td width="27%"><input type="submit" class="formulario" value="Salvar"></td>
    <td width="30%"><input type="reset" class="formulario" value="Limpar"></td>
    <td width="31%"><a href="escolhe_pra_alterar_produtos.asp" class="linkmenuativo">Alterar</a></td>
    <!--<td width="12%"><a href="form_exclui_clientes.asp" class="link1_inativo">Excluir</a></td> -->
  </tr>
  </table>
  </form>
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>
escolhe_pra_alterar_produtos.asp
<table width="100%" height="290" border="0">
  <tr>
    <td></td>
  </tr>
  <tr>
    <td height="241"><div align="center"><form action="action_excluir_produtos.asp" method="get">

                      <table width="361">
<tr> 
                          <td width="78" class="titulo1">Classificação</td>
              <td width="78" class="titulo1">Código Produto</td>
              <td width="78" class="titulo1">Descrição</td>
          <td width="63"> 
                  <input name="Submit" type="submit" class="formulario" value="Excluir"></td>
                        </tr>

 <!-- #include file="config/conexao.asp"-->                       
<%

call abre_conectar

'Seleciona da tabela contato
sql = "SELECT * FROM produtos "
set tab = cnn.execute(sql)

%>
                        <%While Not tab.EOF %>
                        <tr> 
                          <td><a href="form_altera_produtos.asp?alterar=<%=tab("id")%>" class="linkmenuativo"><%=tab("id_categoria")%></a></td>
                          <td><a href="form_altera_produtos.asp?alterar=<%=tab("id")%>" class="linkmenuativo"><%=tab("cod_produto")%></a></td>
                          <td><a href="form_altera_produtos.asp?alterar=<%=tab("id")%>" class="linkmenuativo"><%=tab("descricao")%></a></td>                          
                    <td> 
                              <input name="radio" type="checkbox" value="<%=tab(0)%>"></td>
                        </tr>
                       
                        <%
  'Move para o próximo registro
  tab.MoveNext
  Wend
  'Fechando as conexões
  call fecha_conectar
set tab = nothing
  %>
                      </table>
</form></div></td>
  </tr>
</table>
altera_dados_produtos.asp
<!--#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&iacute;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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

só uma consideração...

eu não gosto de usar este sistema sem componentes ... até fiz alguma coisa monstruosa com ele... do tipo vários ups de uma vez... e tal...

mais ele começõu a dar problemas de desempenho e com o tamanho dos arquivos...

bom se sua aplicação for pequena, ele pode ser usado sem problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Boa tarde, concordo plenamente com o bareta, mas eu penso da seguinte maneira q para usar um upload com componentes o servidor do seu site precisa ter esse componente, o q nos deixa refem dos servidores, mas é como foi dito para pequenas aplicações o sistema é muito bom ... Abraçosss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Boa tarde, concordo plenamente com o bareta, mas eu penso da seguinte maneira q para usar um upload com componentes o servidor do seu site precisa ter esse componente, o q nos deixa refem dos servidores, mas é como foi dito para pequenas aplicações o sistema é muito bom ... Abraçosss

foi em cima desse problema que criei funções que podem usar 5 componentes de upload e 5 de e-mail os mais comuns, o qual será usado fica selecionavel pelo painel do administrador.

e aconselho a todos terem isso, um quadro de funções comuns que irá poupar tempo e dor de cabeça ao fazer um site ou sistema comercial.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Opá show isso muito boa idéia deixar q o usuário possa escolher o componente legal mesmo ... Mas esse script q aki deixei foi uma adaptação pois atendeu a minha necessidade por isso coloquei aki no forúm, mas é claro q a sua opnião foi muito importante, mas só axo q deixar para q os usuários escolham o o componente é muito bom mesmo, mas isso qd o servidor hospedado tem o componente ... abraçosss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

O Jow, beleza? Outra consideração... é que pelo que eu entendi (por favor me explique caso eu esteja errado) é que você no script para excluir, está deletando apenas o registro do Banco de Dados... mas pelo que eu vi nada de apagar o arquivo da pasta em que ele foi upado, correto?

Como você solucionou esse problema?

[]'s Notax

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

O Jow, beleza? Outra consideração... é que pelo que eu entendi (por favor me explique caso eu esteja errado) é que você no script para excluir, está deletando apenas o registro do Banco de Dados... mas pelo que eu vi nada de apagar o arquivo da pasta em que ele foi upado, correto?

Como você solucionou esse problema?

[]'s Notax

simples

fileName=server.mappath(rs("nome_doarquivo"))
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(FileName) Then
FSO.DeleteFile FileName
End If
Set FSO = Nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

bareta... to tentando assim, pra aproveitar os chekbox do script do Jow...

...cont...
if err = 0 and id <> "" then
            array_id = split(id,",")
            
            For i=0 to ubound(array_id)
                sql_id = sql_id & "arquivos.codigo = " & Trim(array_id(i)) & " OR "
            Next
            sql_id = left(sql_id,(len(sql_id)-4))
            stringSQL = "DELETE * FROM arquivos WHERE "&sql_id&""
            
'-------------------deletando arquivos da pasta arquivos!
Dim rs
Set rs=Conexao.Execute("Select * from arquivos where "&sql_id&"")

arquivo1 = rs("arquivo")

Dim fso

Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile "c:\\wwwroot\\files\\admin\\arquivos\\"& arquivo
'-----------------------fim delete de arquivos!            
            
            objConn.Execute(stringSQL)

            objConn.close
            Set objConn = Nothing
            if err = 0 Then
...cont...

mas não ta rolando... ele trava... apaga do bd mas não apaga do arquivo...

pode dar uma força?

[]'s Notax

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado (editado) · Denunciar post

Ta na mão!

só tem um problema... desta forma apaga apenas um arquivo de cada vez... (mesmo se selecionar mais de um checkbox)... será que alguém sabe como aproveitar essa "sql_id" para apagar multiplos arquivos por FSO??? pesquisei por aqui e me perdi! se alguém souber será muito bem vindo! a resposta que a sql_id dá é igual a: codigo.suatabela 01 OR codigo.suatabela 02 e assim por diante...

Set objConn =  Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.MapPath("bd.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
        if err = 0 and id <> "" then
            array_id = split(id,",")
            
            For i=0 to ubound(array_id)
                sql_id = sql_id & "arquivos.codigo = " & Trim(array_id(i)) & " OR "
            Next
            sql_id = left(sql_id,(len(sql_id)-4))
            stringSQL = "DELETE * FROM arquivos WHERE "&sql_id&""

'-------------------deletando arquivos da pasta arquivos!
Set objConn1 =  Server.CreateObject("ADODB.Connection")
objConn1.Open "DBQ=" & Server.MapPath("bd.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"
ComandoSQL = "SELECT * FROM arquivos WHERE "&sql_id&""
Set ObjRs = objConn1.Execute(ComandoSQL)

Dim fso

Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.DeleteFile "c:\\domains\\wwwroot\\files\\admin\\arquivos\\"& objRS("arquivo")
'-----------------------fim delete de arquivos!            
            
            objConn.Execute(stringSQL)

            objConn.close
            Set objConn = Nothing
            if err = 0 Then
                        objRs1.close
                        objConn1.close
                        Set objRs1 = Nothing
                        Set objConn1 = Nothing

[]'s Notax

Editado por Notax

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Olá jow...

Desculpe estar revivendo o tópico, mas estava atrás de um script de upload de imagens em ASP e caí aqui no seu... beleza... funcionou que foi uma maravilha... só tive um "pequeno" problema...

Minhas imagens estão indo para o server com zero bytes...

Sabes me dizer o que pode estar o ocorrendo???

Grato desde já....

Eduardo Gonçalves

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Alguns servidores limitam o uso dessa prática bloqueando algumas funções do IIS, esse pode ser um caso! Primeira coisa a fazer é checar com o seu servidor as configurações do IIS, verificando se faz-se possível uploads s/ componentes...

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Ok. Desculpe a pergunta, mas eu verifico isto aonde??? Na parte onde eu "digo" a ele para ler e escrever em diretórios??? Att...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Ok. Desculpe a pergunta, mas eu verifico isto aonde??? Na parte onde eu "digo" a ele para ler e escrever em diretórios??? Att...

verifique a existência de um componente d upload no server e faça upload via este componente...

isso ira te poupar tempo e dor de cabeça.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado (editado) · Denunciar post

Obrigado pela ajuda... Consegui resolver, utilizando o componente AspUpload que estava instalado no server... Agora a dúvida é outra... Executando o código abaixo

<%@ codepage="1252" language="VBScript" %>
<% response.Charset="ISO-8859-1" %>
<!--#include file="upload_funcoes.asp"-->
<!--#include file="functions.asp"-->
<%    
    Set Upload = Server.CreateObject("Persits.Upload")
    Set Jpeg = Server.CreateObject("Persits.Jpeg")
    
    ' Recuperando os Dados Digitados ----------------------
    Set linha = Upload.Files("linha")
    Set sublinha = Upload.Files("sublinha")
    Set titulo = Upload.Files("titulo")
    Set descricao = Upload.Files("descricao")
        
    Upload.SetMaxSize 50000000, True
    
    Upload.Save("c:\xxx\xxx\xxx\images\produtos")
    
    Set File = Upload.Files("foto")
    
    'For Each File in Upload.Files
    '    File.SaveAs Path & File.FileName
    'Next
    
    ' Open source image
    Jpeg.Open "c:\xxx\xxx\xxx\images\produtos\" & File.FileName
    
    ' New width
    L = 100
    
    ' Resize, preserve aspect ratio
    Jpeg.Width = L
    Jpeg.Height = Jpeg.OriginalHeight * L / Jpeg.OriginalWidth
    
    ' create thumbnail and save it to disk
    Jpeg.Save "c:\xxx\xxx\xxx\images\produtos\tumb" & File.FileName
    
    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\xxx\xxx\xxx\databases\bdadmin.mdb;Persist Security Info=False;"
    
    SQL = "INSERT INTO tbprodutos([idlinha], [idsublinha], [titulo], [texto], [foto], [thumb]) VALUES(" & linha & ", " & sublinha & ", '" & titulo & "', '" & descricao & "', '" & File.FileName & "', 'tumb" & File.FileName & "' )"
    Response.Write(SQL)
    Response.End()
    cn.Execute(SQL)
    cn.Close 
    Set cn=nothing
%>
<html>
<head>
<style>
body {
    background: #f2f2f2;
    margin: 0; /* it's good practice to zero the margin and padding of the body element to account for differing browser defaults */
    padding: 0;
    text-align: center; /* this centers the container in IE 5* browsers. The text is then set to the left aligned default in the #container selector */
    color: #000000;
    font-family: "Lucida Console";
}
</style>
</head>
<body>
<div align="justify" style="width:500px;" id="retorno">
    <h3 align="center">:: Cadastro de Produtos ::</h3>
    <p>Produto '<% Response.Write(titulo) %>' cadastrado com sucesso...</p>

<body>
</body>
</html>

Me retorna o erro:

Erro de tempo de execução do Microsoft VBScript erro '800a005b'

A variável de objeto não foi definida

/admin/bd_Produtos.asp, line 41

Na linha 41, tenho:

SQL = "INSERT INTO tbprodutos([idlinha], [idsublinha], [titulo], [texto], [foto], [thumb]) VALUES(" & linha & ", " & sublinha & ", '" & titulo & "', '" & descricao & "', '" & File.FileName & "', 'tumb" & File.FileName & "' )"

Grato desde já pela ajuda...

Eduardo Gonçalves

Editado por Eduardo Gonçalves

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Sei lá... mensagem de erro diz uma coisa... mas pra mim o erro é outro... [] normalmente de usam para vetores...

a sintaxe mais comun de insert seria assim:

SQL = "INSERT INTO tbprodutos(idlinha, idsublinha, titulo, texto, foto, thumb) VALUES(" & linha & ", " & sublinha & ", '" & titulo & "', '" & descricao & "', '" & File.FileName & "', 'tumb" & File.FileName & "' )"
se a mensagem de erro persistir coloque
dim SQL

exatamente acima de sua instrução de insert...

Era isso?

[]'s Rafael Spilki

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Valeu cara, mas não rolou... continua dando o mesmo erro....

Att...

Eduardo Gonçalves

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Vi agora outros erros de sintaxe, como por exemplo:

SQL = "INSERT INTO tbprodutos(idlinha, idsublinha, titulo, texto, foto, thumb) VALUES(" & linha & ", " & sublinha & ", '" & titulo & "', '" & descricao & "', '" & File.FileName & "', 'tumb" & File.FileName & "' )"
veja: 'tumb" & File.FileName & "' o que é isso? deveria ser assim: , '"&tumb&"', '" & File.FileName & "' ou seja:
SQL = "INSERT INTO tbprodutos(idlinha, idsublinha, titulo, texto, foto, thumb) VALUES(" & linha & ", " & sublinha & ", '" & titulo & "', '" & descricao & "', '" & File.FileName & "', '"&tumb&"', '" & File.FileName & "')"

Mas note... fazendo isso você fica com sete values para 6 campos... tem algo errado aí!

Lembre-se de verificar que quando no bd o campo é numérico não deve ter ' como é o caso do seu value linha... mas você precisa ter certeza de que esse value realmente é numérico... sacou?

Testa aí e ve o que rola...

Depois posta aqui os resultados... havendo erro novamente, poste seu código (posição atual) mensagem de erro e linha... tudo denovo!

[]'s Rafael Spilki

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Ok... A idéia aqui:

'tumb" & File.FileName & "'

era fazer com que viesse um tumb antes do nome da imagem... Ex.. se a imagem tem nome Imagem1.jpg, a idéia era transformar ela em tumbImagem1.jpg

Aqui " & linha & ", " & sublinha & ", o campo linha é número mesmo e não está entre aspas simples...

Ok. Resolvi este problema (assim: Set linha = Upload.Form("idlinha"))... Agora o problema é outro... Não estou conseguindo fazer com que os campos do tipo texto lá do formulário sejam atribuídos pelas variáveis linha, sublinha, titulo e descrição...

Já tentei assim: Set linha = Upload.Files("idlinha")

Assim: Set linha = Upload.Form("idlinha")

E também por For Each:

For Each Item in Upload.Form

Select case Item.Name

case "idlinha"

Set linha = Item.Value

End Select

Next

Att...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Tente colocar o insert dentro do loop...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Buenas pessoal... obrigado a todos... Consegui resolver o problema...

Após dar uma garimpada no site do componente AspUpload, descobri que as atribuições de campos texto do formulário só devem ocorrer depois de eu ter dado o save do arquivo no servidor... Se eu atribuir as variáveis antes, estes valores vem em branco... Agora sim, está tudo funcionando....

Att...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora
Entre para seguir isso  
Seguidores 0