Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maux

upload + progressbar

Recommended Posts

eae galera...alguem ai sabe como criar um progress bar no upload, pode ser ASPUpload, ou Upload sem componetens, ou fso... soh q to precisano de um progress bar..alguem ai pode ajudar...vlwabrass

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem um do aspupload, muito bom... e já vem junto qdo você compra o componente... http://www.aspupload.com/manual_progress.html

 

o bom dele é que ele trabalha com o PID (id do processo) deixando o resultado mais perto do real possível... além de ser possível personalizar, etc...

 

só uma info... se você for tentar usar esta classe do componente em servidores compartilhados (locaweb, etc.) eles normalmente desativam

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na página com o formulário:

 

adiciona esses campos:

<input type="button" name="anexo" class="bt" value="Anexar" size="8" onclick="java script:window.open('df_upload_imagens.asp?campo=<%=Server.URLEncode("foto")%>&pasta=<%=Server.URLEncode("upload")%>', 'aterar_imagem', 'width=250, height=300')" />

<input type="hidden" name="foto" value="sem.jpg" />
	  <img src="sem.jpg" name="img_foto" border="0" id="img_foto" />

e esse javascrtip:

function recebe_imagem(campo, imagem){
var foto = 'img_' + campo
document.form_incluir[campo].value = imagem;
document.form_incluir[foto].src = imagem;
document.form_incluir.anexo.disabled = true;
document.del.arquivo.value = imagem.replace("upload/", "");
}

 

depois você cria a página de_upload_imagens.asp

<% @ LANGUAGE="VBSCRIPT" %>
<%
If Session("s_nivel") = "" OR Session("s_nivel") = "0" OR Session("s_nivel") = "4" OR Session("s_nivel") = "5" OR Session("s_nivel") = "6" OR Session("s_nivel") = "7" OR Session("s_nivel") = "8" OR Session("s_nivel") = "9" OR Session("s_nivel") = "22" OR Session("s_nivel") = "23" OR Session("s_nivel") = "24" OR Session("s_nivel") = "26" Then
Response.write("<script> alert('Você não está logado, ou seu nível não permite acessar essa página!!');top.location.href='site.asp' </script>")
response.End()
End If
%>
<HTML>
<HEAD>
<TITLE>Imagens</TITLE>
<style type="text/css">
<!--
.campo_alerta
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
border: 1px solid black;
background-color: #ffff99;
}
.texto_pagina
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: dimgray;
}

.tabela_formulario
{
width: 200;
background-color: white;
}

.titulo_campos
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: dimgray;
background-color: whitesmoke;
}

.campos_formulario
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: dimgray;
background-color: gainsboro;
border: 1px inset;
}

.botao_enviar
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: white;
background-color: gray;
}
-->
</style>
<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 = "upload"
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" Or Lcase(Right(filename,3)) = "png" 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 do seu site\nRenomei sua imagem.")
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>
</BODY>
</HTML>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilizei este exemplo de Upload, mas esta retornando sempre a seguinte mensagem:Erro de tempo de execução do Microsoft VBScript (0x800A0046)Permissão negadaSe crio o diretorio na mao, funciona, mas por dentro da funcao nada feito.Alguem poderia me auxiliar???Nas propriedades do IIS esta marcado as propriedades de Leitura de Gravacao. Esta rodando sob plataforma WinXp.Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara to com um problema, eu mexi no seu codigo, mudei o tamanho de arquivo aceitavel, mais ta f***..pq qndo o arquivo eh maior que 3MB da erro na hora de envia...como arruma isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.