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

Ajuda em upload


marmmc

Pergunta

Tenho o seguinte script abaixo, pois ele faz upload de .SWF e carrega na pagina, mas só que este exemplo que posto abaixo, se testarem verão que funciona beleza no firefox, mas não consiga ter o mesmo resultado no IE, pois ele não atualiza.

Deem uma olhada e veja se conseguem me ajudar, acredito que seja no java script:

Lá vai...

CRIAR.ASP

<HTML>
<HEAD>

<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.frm[campo].value = imagem;
    document.frm[foto].src = imagem;
}
</script>


</HEAD>
<BODY>


<form action="teste.asp" method="post" name="frm" target="_parent" id="frm">
  <table width="100%" height="380" border="0" align="left" cellpadding="2" cellspacing="2" class="BordaLaranja">
    <tr>
      <td><table width="100%" border="0" cellspacing="2" cellpadding="2">
        <tr>
          <td width="73%"><input name="ImagemBANNER" type="hidden" id="ImagemBANNER" value="banners/teste.swf"></td>
          <td width="27%" height="30" bgcolor="#F4F4F4"><div align="center"><a href="criar_upload.asp?campo=<%=Server.URLEncode("ImagemBANNER")%>" target="alterar_imagem" class="FonteNoticiasTextoBold" onClick="abre_janela(350, 320, 'alterar_imagem')"><strong>ALTERAR BANNER</strong></a></div></td>
        </tr>
      </table></td>
    </tr>
    <tr>
      <td>
     <div align="center">
      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="400" height="400">
       <param name="src" value="banners/teste.swf">
        <embed src="banners/teste.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" name="img_ImagemBANNER" id="img_ImagemBANNER" width="400" height="400">
         </embed>
        </object>
      </div></td>
    </tr>
    <tr>
      <td><div align="center"><input type="submit" class="BotaoBorda1" value="OK"></div></td>
    </tr>
  </table>
</form>


</BODY>
</HTML>
CRIAR_UPLOAD.ASP
<HTML>
<HEAD>
<TITLE>Enviar Imagens</TITLE>
<script language=javascript>
function envia_imagem(imagem) {
         self.opener.recebe_imagem('<%=Request("campo")%>', imagem);
window.close();
}
</script>
<style type="text/css">
<!--
BODY {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    color: #333333;
}
TD {
    font-size: 11px;
    color: #999999;
}
INPUT {
    font-size: 11px;
    text-decoration: none;
    font-family: Verdana, Arial, Helvetica, sans-serif;
}
FILE {
    font-size: 11px;
    text-decoration: none;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    color: #0060BF;
}
A:HOVER {
    color: #0060BF;
    text-decoration: underline;
}
A:ACTIVE {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    color: #000000;
    cursor: hand;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>
<%
'Descriminamos as variaveis
Dim UploadControl
Dim UploadRequest
Dim Folder
Dim File
Dim ObjFS
Dim objRootFolder
          
'Programação do sistema de envio de imagens
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("--")))

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

'AJUSTE DO DIRETÓRIO DOS ARQUIVOS
pasta_imagens = "banners" & 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)

SET UploadRequest = CreateObject("Scripting.Dictionary")
     BuildUploadRequest  RequestBin
     contentType = UploadRequest.Item("arquivo_imagem").Item("ContentType")
    filepathname = UploadRequest.Item("arquivo_imagem").Item("FileName")
        filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
  value = UploadRequest.Item("arquivo_imagem").Item("Value")
  
IF Lcase(Right(filename,3)) = "swf" 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) > 900000 THEN
%>
<script language=javascript>
alert("Erro ao enviar a imagem, o tamanho do arquivo deve ser menor que 300Kb")
enviar.disabled = false;
</script>
<%
ELSE
%>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="98%" border="0" align="center" cellpadding="2" cellspacing="2">
  <tr> 
    <td><strong><font color="#0060BF">Aguarde o envio da imagem...</font></strong></td>
    <td>&nbsp;</td>
  </tr>
  <tr> 
    <td colspan="2"><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></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, a imagem deve possuir a extensão .JPG ou .GIF");
enviar.disabled = false;
</script>
<%
END IF
END IF
%>
<FORM ACTION="<%=Request.ServerVariables("SCRIPT_NAME")%>?campo=<%=campo%>&pasta=<%=pasta%>&enviar=sim" METHOD="post" ENCTYPE="multipart/form-data" name="frm" target="_parent" id="frm" onSubmit="enviar.disabled=true">
  <table width="98%" border="0" align="center" cellpadding="2" cellspacing="2">
    <tr> 
      <td colspan="2"><strong><font color="#000000">Enviar uma nova imagem</font></strong></td>
    </tr>
    <tr> 
      <td width="89%"><div align="center"> 
          <input name="arquivo_imagem" type="file" class="campos_formulario" id="arquivo_imagem" style="width: 100%" size="35" maxlength="50">
        </div></td>
      <td width="11%"><div align="center"> 
          <input type="submit" name="enviar" value="Enviar" class="botao_enviar">
        </div></td>
    </tr>
    <tr> 
      <td colspan="2" class="NOTLINK">( A imagem deve ter nó máximo 900Kb )</td>
    </tr>
  </table>
</FORM>
<table width="99%" border="0" align="center" cellpadding="2" cellspacing="2">
  <tr>
    <td><table width="100%" border="0" align="center" cellpadding="2" cellspacing="2">
        <tr> 
          <td height="22"><strong><font color="#0060BF">Sele&ccedil;&atilde;o 
            de imagem enviada anteriormente </font></strong></td>
        </tr>
        <tr> 
          <td> <DIV class="titulo_campos" style="width:100%; height:175px; visibility: visible; overflow: auto; border:1px solid"> 
              <%
'Listaremos as imagens do diretório
lista_imagens pasta_imagens, "swf"

FUNCTION lista_imagens( strFolder, tipo )
       IF Trim( Request.QueryString("folder") ) <> "" THEN
    strFolder = Request.ServerVariables("APPL_PHYSICAL_PATH") & Request.QueryString("folder")
END IF

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 "&nbsp;&nbsp;<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></td>
        </tr>
        <tr>
          <td></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</BODY>
</HTML>

Amigos, para funcionar precisa criar um diretorio, e colocar eles numa pasta, e também criar o diretorio banners dentro deste dir, e colocar um .swf de exemplo. que funcionará certinho no firefox, mas preciso da ajuda dos colegas para resolver este exemplo para que VENHAN FUNCIONAR NO DANADO DO INTERNET EXPLORER.

Muito obrigado a todos.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
3.8 Não é permitida a postagem de mensagens com a finalidade de manter o tópico no início da lista (up), nem de mensagens que não se refiram ao assunto do tópico (flood). Caso isso ocorra, as mensagens serão excluídas e os autores, advertidos.

Up's não são permitidos aqui no fórum !

Se ainda não responderam é porque não tiveram tempo o suficiente para avaliar seu programa !

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...