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

Enviar Foto Para A Notícia


ibreak

Pergunta

Oi pessoal, beleza... estou com uma dúvida e não estou conseguindo resolver.

Primeiro que eu peguei um sistema de notícias da net com categorias, data e texto. Eu inseri nesse formulário que envia o texto para o DB um campo para localizar a foto no pc e enviar para uma pasta específica no site, registrando o nome da foto no DB.

Eu peguei na net o sistema de um upload sem componente e inseri nesse sistema de notícia.

O que eu não consigo fazer é integrar o envio da notícia completa e da foto ao mesmo tempo.

Tipo eu clico em enviar para o db a notícia e ao mesmo tempo o sistema faz o upload da foto... é possível fazer isso... é a melhor forma?

Só na página para enviar a foto o action do formulário é assim:

<form name="form1" action="upload_form2.asp" method="post" enctype="multipart/form-data">

E para enviar a notícia completa para o DB o action é assim:

<form name="form1" method="post" action="incluir2.asp">

Como eu posso clicar no botão para enviar a notícia e o sistema de uma única vez executar as duas ações... Eu não sei fazer isso... enviar a foto e enviar a notícia. Ou eu separo o formulário, primeiro envia a foto e depois a notícia. Podem me orientar melhor...

To muito confuso...

Abaixoo código da página de cadastro d anotícia com o campo para enviar a foto...

<!--#include file="cookies.asp" -->
<% 
'Criando variáveis
Dim rsTipos

set rsTipos=server.createobject("adodb.recordset")

'Esta SELECT irá selecionar todos os tipos de notícias
'Neste caso, será para colocarmos no formulário as opções de escolher o tipo da notícia
rsTipos.Open "SELECT * from noticias_tipo order by tipo", meubd

%>
<html>
<head>
<title>iMasters / ASP - Notícias</title>
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="778" border="0" cellspacing="3" cellpadding="0">
  <tr valign="middle">
    <td height="70" colspan="3" bgcolor="fcfcfc"><font size="6" face="Arial, Helvetica, sans-serif">ADMINISTRATIVO
        - ASP NOT&Iacute;CIAS</font></td>
  </tr>
  <tr>
    <td colspan="3" bgcolor="f0f0f0"><font face="Arial, Helvetica, sans-serif">&nbsp;</font></td>
  </tr>
  <tr>
    <td width="126" height="277" valign="top" bgcolor="#BFEFFF"><table width="100%" border="0" cellspacing="2" cellpadding="1">
      <tr>
        <td bgcolor="#FFFFFF"><a href="incluir.asp">
          <div align="center"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Incluir
                Not&iacute;cia</strong></font></div>
        </a></td>
      </tr>
    </table></td>
    <td width="600" valign="top"><blockquote>
      <p><font face="Arial, Helvetica, sans-serif"><strong><font size="4">
        Incluir not&iacute;cia</font></strong></font></p>
      <p><font size="2" face="Arial, Helvetica, sans-serif">Para incluir uma
        nova not&iacute;cia, preencha o formul&aacute;rio abaixo:</font></p>
      <form name="form1" method="post" action="incluir2.asp">
          <table border="0" align="center" cellpadding="0" cellspacing="3">
            <tr> 
              <td><div align="right"><font size="2" face="Arial, Helvetica, sans-serif">Foto:</font></div></td>
              <td><input type="file" name="foto" size="14"></td>
            </tr>
            <tr> 
              <td><div align="right"><font size="2" face="Arial, Helvetica, sans-serif">T&iacute;tulo:</font></div></td>
              <td><div align="left"><font face="Arial, Helvetica, sans-serif"><font size="2"> 
                  <input name="titulo" type="text" id="titulo" size="40">
                  </font></font></div></td>
            </tr>
            <tr> 
              <td><div align="right"><font size="2" face="Arial, Helvetica, sans-serif">Tipo:</font></div></td>
              <td><font size="2" face="Arial, Helvetica, sans-serif"> 
                <select name="tipo" id="tipo">
                  <% while NOT rsTipos.EOF %>
                  <option value="<%=rsTipos("codtipo")%>"><%=rsTipos("tipo")%></option>
                  <%
            rsTipos.movenext
            wend
            %>
                </select>
                </font></td>
            </tr>
            <tr> 
              <td><div align="right"><font size="2" face="Arial, Helvetica, sans-serif">Chamada:</font></div></td>
              <td><font face="Arial, Helvetica, sans-serif"><font size="2"> 
                <textarea name="chamada" cols="40" id="chamada"></textarea>
                </font></font></td>
            </tr>
            <tr> 
              <td><div align="right"><font size="2" face="Arial, Helvetica, sans-serif">Conte&uacute;do:</font></div></td>
              <td><font face="Arial, Helvetica, sans-serif"><font size="2"> 
                <textarea name="conteudo" cols="40" rows="5" id="conteudo"></textarea>
                </font></font></td>
            </tr>
            <tr> 
              <td><div align="right"><font size="2" face="Arial, Helvetica, sans-serif">Data 
                  para expirar:</font></div></td>
              <td><font size="2" face="Arial, Helvetica, sans-serif"> 
                <input name="expira" type="text" id="expira">
                </font></td>
            </tr>
            <tr> 
              <td><div align="right"><font size="2" face="Arial, Helvetica, sans-serif">Destaque:</font></div></td>
              <td> <table width="100" border="0" cellspacing="0" cellpadding="1">
                  <tr> 
                    <td><font size="2" face="Arial, Helvetica, sans-serif"> 
                      <input type="radio" name="destaque" value="1">
                      </font></td>
                    <td><font size="2" face="Arial, Helvetica, sans-serif">Sim</font></td>
                    <td><font size="2" face="Arial, Helvetica, sans-serif"> 
                      <input name="destaque" type="radio" value="0" checked>
                      </font></td>
                    <td><font size="2" face="Arial, Helvetica, sans-serif">N&atilde;o</font></td>
                  </tr>
                </table></td>
            </tr>
            <tr> 
              <td colspan="2"><div align="right"> 
                  <input type="submit" name="Submit" value="Cadastrar">
                </div></td>
            </tr>
          </table>
      </form>
      <p>&nbsp;</p>
    </blockquote></td>
    <td width="40" bgcolor="#BFEFFF"><font face="Arial, Helvetica, sans-serif">&nbsp;</font></td>
  </tr>
  <tr>
    <td colspan="3" bgcolor="f0f0f0"><div align="right"><font color="#666666" size="2" face="Arial, Helvetica, sans-serif">ASP
    - Not&iacute;cias</font></div></td>
  </tr>
</table>
<p>&nbsp;</p>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

aiaiaiaaiai....q beleza... né...

eu uso um editor FCKEDITOR acho q é isso nas noticias.... mais pratico....

para fazer tudo junto você tem que pegar os campos do form... par4a cada tipo de upload é diferente veja se esse seu tem alguma refencia aos campos do form

Link para o comentário
Compartilhar em outros sites

  • 0

Bereta eu tenho um sistema com o FCKeditor mas é que as pessoas que fazem a inserção de notícias não gostam de enviar fotos desta maneira, por isso tenho que criar um sistema manual.

Bem você disse que pra cada tipo de upload é diferente. não compreendi ao certo o que você quiz dizer. Eu preciso ter um formulário separado?

Uma outra menira que eu acredito que dá certo, é procurar a foto e enviá-la primeiro, fazer o upload na mesma página. depois só enviando o nome da foto para o db com a notícia. Não sei como fazer isso...

Link para o comentário
Compartilhar em outros sites

  • 0

ibreak

opa o a gente aqui de novo.

ibreak, tem um truque bem simples que no seu caso ira funcionar

use session e coloque tudo junto no mesmo formulário.

tipo assim, monte o preenchimento das informações e logo abaixo o upload das imagens.

na acção...faça assim:

faça o upload primeiro e nesta pagina de upload (ação do upload) crie as sessions...e redirecione para uma outra pagina que ira inserir os dados da noticia e no de fotos etc no banco de dados... tem outras formas mais são mais complexas.

espero ter ajudado você ibreak.

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Márcio achei bem legal a sua explicação e acredito que senão entendi muito bem cheguei bem perto...

Bem eu fiz do jeito que você me explicou...

Eu inseri na página da notícia um campo para enviar a foto(mesmo formulário da notícia). Aí o usuário preenche todos os dados no formulário, no final procura a foto e clica em enviar. O sistema envia a foto usando o método post. (formulário comum)

Na página que é responsável pelo envio da foto eu to usando sessions para receber as informações preenchidas na página anterior.

Eu to testando usando o IIS do win xp.

O erro que ele tá acuasando é o seguinte:

Tipo de erro:

Objeto Request, ASP 0207 (0x80004005)

Não é possível usar a coleção Request.Form após chamar BinaryRead.

/news1/arquivos/adm/upload_form2.asp, line 10

Na linha 10 eu tenho isso:

SESSION ("titulo") = Request.form("titulo")

Veja abaixo o código completo da página responsável em capturar os dados preenchidos e enviar para o DB...

Espero ter entendido a sua explicação e também estar no caminho certo.

<!-- #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 ----------------------
SESSION ("titulo") = Request.form("titulo")
SESSION ("tipo") = Request.form("tipo")
SESSION ("chamada") = Request.form("chamada")
SESSION ("conteudo") = Request.form("conteudo")
SESSION ("expira") = Request.form("expira")
data=day(now)&"/"&month(now)&"/"&year(now)
SESSION ("destaque") = Request.form("destaque")

' 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/noticia" + 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
url_conexao = Server.MapPath("../bd/base.mdb")
set conexao = Server.CreateObject("ADODB.Connection")
conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao

'Faremos aqui a inserção de todos os dados digitados no form anterior
meubd.EXECUTE "INSERT INTO noticias (titulo, chamada, tipo, conteudo, expirar, data, destaque, foto) values ('"&titulo&"','"&chamada&"',"&tipo&",'"&conteudo&"','"&expira&"','"&data&"',"&destaque&"','"&cfoto&")"

' Mostra Mensagem de Confirmação na Tela
Response.write "Dados Cadastrados com Sucesso!"

'Logo após a inserção dos dados, mostrará uma mensagem e voltará para a página principal.asp
response.write "<script>location = 'principal.asp';alert('Sua notícia foi cadastrada com sucesso!')</script>"
%>

Link para o comentário
Compartilhar em outros sites

  • 0

O CODIGO ABAIXO, ELE ENVIA A FOTO E DEPOIS QUE você CADASTRAR A MATERIA ELE CADASTRA A FOTONO BD.

PAGINA DE INCLUSAO.ASP

<%
strCon = "DBQ=c:\www\academiamovimento\dados\movimento.mdb;Driver={Microsoft Access Driver (*.mdb)};"
%>

<script language="JavaScript" type="text/javascript">
<!--
function abre_janela(width, height, nome) {
var top; var left;
top = ( (screen.height/2) - (height/2) )
left = ( (screen.width/2) - (width/2) )
window.open('',nome,'width='+width+',height='+height+',scrollbars=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,left='+left+',top='+top);
}
function recebe_imagem(campo, imagem){
var foto = 'img_' + campo
document.form_incluir[campo].value = imagem;
document.form_incluir[foto].src = imagem;
}
function verifica_form(form) {
var passed = false;
var ok = false
var campo
for (i = 0; i < form.length; i++) {
  campo = form[i].name;
  if (form[i].df_verificar == "sim") {
    if (form[i].type == "text"  | form[i].type == "textarea" | form[i].type == "select-one") {
      if (form[i].value == "" | form[i].value == "http://") {
        form[campo].className='campo_alerta'
        form[campo].focus();
        alert("Preencha corretamente o campo");
        return passed;
        stop;
      }
    }
    else if (form[i].type == "radio") {
      for (x = 0; x < form[campo].length; x++) {
        ok = false;
        if (form[campo][x].checked) {
          ok = true;
          break;
        }
      }
      if (ok == false) {
        form[campo][0].focus();
        form[campo][0].select();
        alert("Informe uma das opcões");
        return passed;
        stop;
      }
    }
    var msg = ""
    if (form[campo].df_validar == "cpf") msg = checa_cpf(form[campo].value);
    if (form[campo].df_validar == "cnpj") msg = checa_cnpj(form[campo].value);
    if (form[campo].df_validar == "cpf_cnpj") {
      msg = checa_cpf(form[campo].value);
      if (msg != "") msg = checa_cnpj(form[campo].value);
    }
    if (form[campo].df_validar == "email") msg = checa_email(form[campo].value);
    if (form[campo].df_validar == "numerico") msg = checa_numerico(form[campo].value);
    if (msg != "") {
      if (form[campo].df_validar == "cpf_cnpj") msg = "informe corretamente o número do CPF ou CNPJ";
      form[campo].className='campo_alerta'
      form[campo].focus();
      form[campo].select();
      alert(msg);
      return passed;
      stop;
    }
  }
}
passed = true;
return passed;
}
function desabilita_cor(campo) {
campo.className='campos_formulario'
}
function checa_numerico(String) {
var mensagem = "Este campo aceita somente números"
var msg = "";
if (isNaN(String)) msg = mensagem;
return msg;
}
function checa_email(campo) {
var mensagem = "Informe corretamente o email"
var msg = "";
var email = campo.match(/(\w+)@(.+)\.(\w+)$/);
if (email == null){
  msg = mensagem;
  }
return msg;
}
function checa_cpf(CPF) {
var mensagem = "informe corretamente o número do CPF"
var msg = "";
if (CPF.length != 11 || CPF == "00000000000" || CPF == "11111111111" ||
  CPF == "22222222222" ||    CPF == "33333333333" || CPF == "44444444444" ||
  CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" ||
  CPF == "88888888888" || CPF == "99999999999")
msg = mensagem;
soma = 0;
for (y=0; y < 9; y ++)
soma += parseInt(CPF.charAt(y)) * (10 - y);
resto = 11 - (soma % 11);
if (resto == 10 || resto == 11)resto = 0;
if (resto != parseInt(CPF.charAt(9)))
  msg = mensagem; soma = 0;
for (y = 0; y < 10; y ++)
  soma += parseInt(CPF.charAt(y)) * (11 - y);
resto = 11 - (soma % 11);
if (resto == 10 || resto == 11) resto = 0;
if (resto != parseInt(CPF.charAt(10)))
  msg = mensagem;
return msg;
}
function checa_cnpj(s) {
var mensagem = "informe corretamente o número do CNPJ"
var msg = "";
var y;
var c = s.substr(0,12);
var dv = s.substr(12,2);
var d1 = 0;
for (y = 0; y < 12; y++)
{
d1 += c.charAt(11-y)*(2+(y % 8));
}
if (d1 == 0) msg = mensagem;
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(0) != d1)msg = mensagem;
d1 *= 2;
for (y = 0; y < 12; y++)
{
d1 += c.charAt(11-y)*(2+((y+1) % 8));
}
d1 = 11 - (d1 % 11);
if (d1 > 9) d1 = 0;
if (dv.charAt(1) != d1) msg = mensagem;
return msg;
}
function mascara_data(data){ 
var mydata = ''; 
mydata = mydata + data; 
if (mydata.length == 2){ 
mydata = mydata + '/'; 
} 
if (mydata.length == 5){ 
mydata = mydata + '/'; 
} 
return mydata; 
} 
function verifica_data(data) { 
if (data.value != "") {
dia = (data.value.substring(0,2));
mes = (data.value.substring(3,5)); 
ano = (data.value.substring(6,10)); 
situacao = ""; 
if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) { 
situacao = "falsa"; 
} 
if (mes < 01 || mes > 12 ) { 
situacao = "falsa"; 
}
if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
situacao = "falsa"; 
} 
if (situacao == "falsa") { 
data.focus();
data.select();
alert("Data inválida!"); 
}
} 
}
//-->
</script>


<%
If Not IsEmpty(Request.Form) Then
  Set objCon = Server.CreateObject("ADODB.Connection")
  objCon.Open strCon

  campo_duplicado = false
  campo_msg = ""

  If campo_duplicado = false Then
    Set objRS= Server.CreateObject("ADODB.Recordset")
    objRS.CursorLocation = 3
    objRS.CursorType = 0
    objRS.LockType = 3
    strQ = "SELECT * FROM mural Where 1 <> 1"
    objRS.Open strQ, objCon, , , &H0001
    objRS.Addnew()
    If objRS.Fields("de").properties("IsAutoIncrement") = False Then
      objRS("de") = Trim(Request.Form("de"))
    End If
    If objRS.Fields("foto").properties("IsAutoIncrement") = False Then
      objRS("foto") = Trim(Request.Form("foto"))
    End If
    If objRS.Fields("msg").properties("IsAutoIncrement") = False Then
      objRS("msg") = Trim(Request.Form("msg"))
    End If
    If objRS.Fields("para").properties("IsAutoIncrement") = False Then
      objRS("para") = Trim(Request.Form("para"))
    End If
    objRS.Update
    objRS.Close
    Set objRS = Nothing
%>

<BR><B>Registro salvo</B><BR>O registro foi cadastrado 
com sucesso.<BR><BR>

<%
  Else
%>

    <BR><B>Atenção!</B><BR><BR>
    O campo <%=campo_msg%> <i>"<%=valor_msg%>"</i> não pode ser salvo, pois já está cadastrado na tabela.
    <BR><A href="java script:history.go(-1)">Clique aqui</a> para voltar ao cadastro</A><BR><BR>

<%
  End If

  objCon.Close
  Set objCon = Nothing
Else
  Set objCon = Server.CreateObject("ADODB.Connection")
  objCon.Open strCon

  Set objRS= Server.CreateObject("ADODB.Recordset")
  objRS.CursorLocation = 2
  objRS.CursorType = 0
  objRS.LockType = 3
  strQ = "SELECT * FROM mural Where 1 <> 1"
  objRS.Open strQ, objCon, , , &H0001
%>

<B>Incluir um novo registro</B><BR>Preencha corretamente 
os dados abaixo:<BR>
<form name="form_incluir" method="post" action="<%=Request.ServerVariables("SCRIPT_NAME")%>" onsubmit="return verifica_form(this);">
<TABLE border=0 cellpadding=2 cellspacing=1 class=tabela_formulario>
  <TR class=titulo_campos><TD>de<br>
<%If objRS.Fields("de").properties("IsAutoIncrement") = False Then%>
<INPUT style="width=350" type="text" name="de" maxlength="255" value="" onKeyPress="desabilita_cor(this)"  df_verificar="sim" class=campos_formulario>
<%
Else
  Response.Write "<B>(Automático)</B>"
End If
%>
  </TD></TR>
  <TR class=titulo_campos><TD>foto (URL)<br>
    <INPUT type="hidden" name="foto" value="imagens/noimage.gif" df_verificar="sim">
    <DIV id="Layer1" style="width: 1px; height:1px; visibility: visible; border:1px solid black"><img name="img_foto" src="imagens/noimage.gif" border="0"></DIV>
    › <a href="df_upload_imagens.asp?campo=<%=Server.URLEncode("foto")%>&pasta=<%=Server.URLEncode("imagens_foto")%>" onClick="abre_janela(250, 300, 'alterar_imagem')" target="alterar_imagem" class="texto_pagina">Enviar Imagem</a>
  </TD></TR>
  <TR class=titulo_campos><TD>msg<br>
<TEXTAREA style="width=350;height=50" name="msg"  df_verificar="sim" onKeyPress="desabilita_cor(this)" class=campos_formulario></TEXTAREA>
  </TD></TR>
  <TR class=titulo_campos><TD>para<br>
<%If objRS.Fields("para").properties("IsAutoIncrement") = False Then%>
<INPUT style="width=350" type="text" name="para" maxlength="255" value="" onKeyPress="desabilita_cor(this)"  df_verificar="sim" class=campos_formulario>
<%
Else
  Response.Write "<B>(Automático)</B>"
End If
%>
  </TD></TR>
</TABLE>
<input type="submit" name="submit" value="Enviar" class=botao_enviar>
</form>

<%
  objCon.Close
  Set objCon = Nothing
End If
%>

PAGINA df_upload_imagens.asp
<% @ LANGUAGE="VBSCRIPT" %>

<script language=javascript>
function envia_imagem(imagem) {
self.opener.recebe_imagem('<%=Request("campo")%>', imagem);
window.close();
}
</script>
</HEAD>
<BODY class="texto_pagina">

<%
Sub BuildUploadRequest(RequestBin)
    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

pasta_imagens = "imagens/" & Request("pasta")
pasta = Server.URLEncode(Request("pasta"))
campo = Server.URLEncode(Request("campo"))

Set objFS = Server.CreateObject("Scripting.FileSystemObject")
If Not objFS.FolderExists(Server.MapPath(pasta_imagens)) Then
  objFS.CreateFolder(Server.MapPath(pasta_imagens))
End if

If Request("enviar") <> "" Then
  Set objFS = Nothing
  byteCount = Request.TotalBytes
  RequestBin = Request.BinaryRead(byteCount)
  Dim UploadRequest
  Set UploadRequest = CreateObject("Scripting.Dictionary")
  BuildUploadRequest  RequestBin
  contentType = UploadRequest.Item("blob").Item("ContentType")
  filepathname = UploadRequest.Item("blob").Item("FileName")
  filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
  value = UploadRequest.Item("blob").Item("Value")
  If Lcase(Right(filename,3)) = "jpg" Or Lcase(Right(filename,3)) = "gif" then
    Set objFS = Server.CreateObject("Scripting.FileSystemObject")
    If objFS.FileExists( Server.mappath(pasta_imagens & "\" & filename)) Then
%>

<script language=javascript>
alert("Erro ao enviar imagem, o arquivo '<%=filename%>' já existe na pasta '<%=pasta_imagens%>' do seu site")
enviar.disabled = false;
</script>

<%

    Else
      If LenB(value) > 200000 then

%>

<script language=javascript>
alert("Erro ao enviar a imagem, o tamanho do arquivo deve ser menor que 200Kb")
enviar.disabled = false;
</script>

<%
      Else
%>
<strong>Aguarde o envio da imagem...</strong><br>

<input name="progress" value="0% enviado" style="border:none">
<table width="100" border="0" cellspacing="0" cellpadding="0" style="border: 1px inset">
  <tr>
    <td><input name="barra" style="border:none; background-color: orangered; height: 10; width:1" readonly=""></td>
    <td></td>
  </tr>
</table>

<%
      Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
      Set MyFile = ScriptObject.CreateTextFile( Server.mappath(pasta_imagens & "\" & filename))
      progress = 0
      n = 0
      For i = 1 to LenB(value)
        MyFile.Write chr(AscB(MidB(value,i,1)))
        progress = Fix((i * 100) / LenB(value))
        If n <> progress then
          n = progress
%>

<script language=javascript>progress.value = "<%=n%>% enviado"</script>
<script language=javascript>barra.style.width = "<%=n%>"</script>

<%
        End if
      Next
      MyFile.Close
%>
<script language=javascript>
envia_imagem('<%=pasta_imagens & "/" & filename%>');
</script>

<%

    End If
    Set objFS = Nothing
  End if

Else
%>

<script language=javascript>
alert("Erro ao enviar a imagem, lembre-se que ela deve possuir extensão JPG ou GIF");
enviar.disabled = false;
</script>

<%
 End If
End If
%>

<FORM METHOD="post" ENCTYPE="multipart/form-data" ACTION="<%=Request.ServerVariables("SCRIPT_NAME")%>?campo=<%=campo%>&pasta=<%=pasta%>&enviar=sim" onSubmit="enviar.disabled=true">
Enviar uma nova imagem<BR>
<INPUT type="file" name="blob" class="campos_formulario" style="width: 100%"><BR>
<INPUT type="submit" name="enviar" value="Enviar" class="botao_enviar"><br>
<i>(A imagem deve ter nó máximo 200Kb)</i>
</FORM>
Selecionar uma imagem enviada anteriormente<BR>
<DIV class="titulo_campos" style="width:100%; height:175px; visibility: visible; overflow: auto; border:1px solid">
<%
lista_imagens pasta_imagens, "gif,jpg"
Function lista_imagens( strFolder, tipo )
  If Trim( Request.QueryString("folder") ) <> "" Then
    strFolder = Request.ServerVariables("APPL_PHYSICAL_PATH") & Request.QueryString("folder")
  End If

  Dim Folder, File
  Dim ObjFS, objRootFolder
  Set ObjFS = Server.CreateObject("Scripting.FileSystemObject")
  Set objFolder = ObjFS.GetFolder(Server.MapPath(strFolder))
  For Each File in objFolder.files
    tipo = Replace(tipo, ",", "")
    For i = 1 to len(tipo) step 3
      If Right(File, 3) = Mid(tipo, i, 3) Then
        Response.Write "  <a href=""java script: envia_imagem('" & StrFolder& "/" & File.Name & "')"" class=""texto_pagina"">" & File.Name & "</a><BR>" & vbcrlf
      End If
    Next
  Next
  
  Response.Write "</td></tr></table>" & vbcrlf
  
  Set objFolder = Nothing
  Set Folder = Nothing
End Function
%>
</DIV>
</BODY>
</HTML>

Link para o comentário
Compartilhar em outros sites

  • 0

smez aind anão testei o seu código e nem sei como eu poderi usar esse sistema seu embutido no meu. Eu preciso que a notícia seja enviada juntamente com a imagem...

Eu agradeço a sua ajuda... vou olhar o seu código e ver se dá pra usar ele... mas parece bem legal...

de qualquer forma se alguém souber como eu arrumo o meu código eu agradeço tb...

valeu...

Link para o comentário
Compartilhar em outros sites

  • 0

SMZ eu vi o seu código, mas tipo gostei da parte que envia a foto, mas a parte inclusao.asp eu não sei como posso adaptar para enviar os dados dos campos da notícia como data, titulo, chamada e notícia...

Tipo como eu posso adaptar para usar no meu sistema...

Se tiver uma sugestão legal ou se puder ajudar no código agradeço.

Obrigado.

Paulo.

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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...