Ir para conteúdo
Fórum Script Brasil
  • 0

Script de upload de imagens sem componentes


jow

Pergunta

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

Link para o comentário
Compartilhar em outros sites

19 respostass a esta questão

Posts Recomendados

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0
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.

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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
Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0
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.

Link para o comentário
Compartilhar em outros sites

  • 0

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
Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...