Ir para conteúdo

POWERED BY:

Arquivado

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

santind2

[Resolvido] Perca de conexão em upload

Recommended Posts

Bom dia,

 

 

Preciso fazer o upload de um arquivo de mais de 50mb, porém até uns dias estava tudo funcionando, onde ele recebia arquivos de até 300mb e não caia a conexão.

 

Agora subir qualquer arquivo perde a conexão. Já tentei fazer tudo que encontrei na net para resolver porém nada funcionou.

 

To passando o código e estou usando o componente SoftArtisans.FileUp

<%
Server.ScriptTimeOut = 99999
%>
<html>
   <head> 
       <title> SaFileUp </title>
   </head>
   <body> 
       <% 
       'Instancia o componente
       SET SaFileUp = Server.CreateObject("SoftArtisans.FileUp") 

           'Configura o caminho onde arquivo será salvo 
           SaFileUp.Path = "e:\digilabs\dgl"

                       '## ATIVA O TRATAMENTO DE ERRO ##
           'Caso o usuário não indique um arquivo para upload, informa erro.
           IF lcase(right(SaFileUp.Form("FILE1").ShortFileName, 3 )) = "dgl" OR lcase(right(SaFileUp.Form("FILE1").ShortFileName, 3 )) = "dlp"  THEN

               'Salva o arquivo no servidor
               SaFileUp.Save
               response.write "<center>Arquivo salvo com sucesso.</center>"

           ELSE IF SaFileUp.IsEmpty THEN

               response.write "<center>Por favor, indique um arquivo para upload.</center><br>"

           ELSE

               response.write   "<center>Por favor, indique um arquivo com a extensão .DGL que o foi solicitado para upload</center><br>"

           END IF
           END IF

           'Gera um link html para retornar a pagina anterior
           response.write "<center><a href='javascript:history.go(-1)'>Voltar</a></center>"

       Set SaFileUp = Nothing 
       %> 
   </body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

se esta tudo normal, verifique se o erro não pode ser alguma instabilidade em seu host ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz uma verificação e era uma configuração dentro do ISS, fora que o componente tive que mudar pois tinha dois instalados.

 

Valeu!!

 

se esta tudo normal, verifique se o erro não pode ser alguma instabilidade em seu host ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

que bom que resolveu, agora só uma dica, você pode executar este code, para ver os componentes instalados no seu IIS

 

componentes instalado.
<%
Dim arrListaComponentes(48)

arrListaComponentes(0)  = Array( "AB Mailer","ABMailer.Mailman" )
arrListaComponentes(1)  = Array( "ABC Upload","ABCUpload4.XForm" )
arrListaComponentes(2)  = Array( "ActiveFile","ActiveFile.Post" )
arrListaComponentes(3)  = Array( "ActiveX Data Object","ADODB.Connection" )
arrListaComponentes(4)  = Array( "Adiscon SimpleMail","ADISCON.SimpleMail.1" )
arrListaComponentes(5)  = Array( "ASP DNS", "AspDNS.Lookup" )
arrListaComponentes(6)  = Array( "ASP HTTP","AspHTTP.Conn" )
arrListaComponentes(7)  = Array( "ASP Image","AspImage.Image" )
arrListaComponentes(8)  = Array( "ASP Mail","SMTPsvg.Mailer" )
arrListaComponentes(9)  = Array( "ASP NNTP News", "AspNNTP.Conn" )
arrListaComponentes(10) = Array( "ASP POP 3", "POP3svg.Mailer" )
arrListaComponentes(11) = Array( "ASP Simple Upload","ASPSimpleUpload.Upload" )
arrListaComponentes(12) = Array( "ASP Smart Cache","aspSmartCache.SmartCache" )
arrListaComponentes(13) = Array( "ASP Smart Mail","aspSmartMail.SmartMail" )
arrListaComponentes(14) = Array( "ASP Smart Upload","aspSmartUpload.SmartUpload" )
arrListaComponentes(15) = Array( "ASP Tear","SOFTWING.ASPtear" )
arrListaComponentes(16) = Array( "ASP Thumbnailer","ASPThumbnailer.Thumbnail" )
arrListaComponentes(17) = Array( "ASP WhoIs","WhoIs2.WhoIs" )
arrListaComponentes(18) = Array( "ASPSoft NT Object","ASPSoft.NT" )
arrListaComponentes(19) = Array( "ASPSoft Upload","ASPSoft.Upload" )
arrListaComponentes(20) = Array( "CDO NTS","CDONTS.NewMail" )
arrListaComponentes(21) = Array( "Chestysoft Image","csImageFile.Manage" )
arrListaComponentes(22) = Array( "Chestysoft Upload","csASPUpload.Process" )
arrListaComponentes(23) = Array( "Dimac JMail","JMail.Message" )
arrListaComponentes(24) = Array( "Distinct SMTP","DistinctServerSmtp.SmtpCtrl" )
arrListaComponentes(25) = Array( "Dundas Mailer","Dundas.Mailer" )
arrListaComponentes(26) = Array( "Dundas Upload","Dundas.Upload.2" )
arrListaComponentes(27) = Array( "Dundas PieChartServer", "Dundas.ChartServer.2")
arrListaComponentes(28) = Array( "Dundas 2D Chart", "Dundas.ChartServer2D.1")
arrListaComponentes(29) = Array( "Dundas 3D Chart", "Dundas.ChartServer")
arrListaComponentes(30) = Array( "Dynu Encrypt","Dynu.Encrypt" )
arrListaComponentes(31) = Array( "Dynu HTTP","Dynu.HTTP" )
arrListaComponentes(32) = Array( "Dynu Mail","Dynu.Email" )
arrListaComponentes(33) = Array( "Dynu Upload","Dynu.Upload" )
arrListaComponentes(34) = Array( "Dynu WhoIs","Dynu.Whois" )
arrListaComponentes(35) = Array( "Easy Mail","EasyMail.SMTP.5" )
arrListaComponentes(36) = Array( "File System Object","Scripting.FileSystemObject" )
arrListaComponentes(37) = Array( "Ticluse Teknologi HTTP","InteliSource.Online" )
arrListaComponentes(38) = Array( "Last Mod","LastMod.FileObj" )
arrListaComponentes(39) = Array( "Microsoft XML Engine","Microsoft.XMLDOM" )
arrListaComponentes(40) = Array( "Persits ASP JPEG","Persits.Jpeg" )
arrListaComponentes(41) = Array( "Persits ASPEmail","Persits.MailSender" )
arrListaComponentes(42) = Array( "Persits ASPEncrypt","Persits.CryptoManager" )
arrListaComponentes(43) = Array( "Persits File Upload","Persits.Upload.1" )
arrListaComponentes(44) = Array( "SMTP Mailer","SmtpMail.SmtpMail.1" )
arrListaComponentes(45) = Array( "Soft Artisans File Upload","SoftArtisans.FileUp" )
arrListaComponentes(46) = Array( "Image Size", "ImgSize.Check" )
arrListaComponentes(47) = Array( "Microsoft XML HTTP", "Microsoft.XMLHTTP" )
arrListaComponentes(48) = Array( "CDOSYS", "CDO.Message" )

' Rotina que verifica o componente do array é um objeto.
Function VerificaObjeto(pComponente)
Dim objComponente
On Error Resume Next
VerificaObjeto = False
Err.Clear
Set objComponente = Server.CreateObject(pComponente)
If Err = 0 Then VerificaObjeto = True
Set objComponente = Nothing
Err.Clear
End Function

Public Function VerificaComponentes()
Dim intCont, strTxt
Dim intIndex, strProv

intCont = 0
strTxt = "<table border='1' bordercolor='black' cellspacing='0' cellpadding='0' align='center' width='400'>"
For intIndex = LBound(arrListaComponentes) To UBound(arrListaComponentes)
 strProv = intIndex
 strTxt = strTxt & "<tr><td width='200'><font face='tahoma' size='1'>" & arrListaComponentes(intIndex)(0) & "</font></td>"
 If VerificaObjeto(arrListaComponentes(intIndex)(1)) Then
   strTxt = strTxt & "<td align=center><font color='red' face='tahoma' size='1'>Instalado</font></td>"
   intCont = intCont + 1
 Else
   strTxt = strTxt & "<td align='center'><font face='tahoma' size='1'>Não Instalado</font></td>"
 End If
 strTxt = strTxt & "</tr>"
Next
strTxt = strTxt & "</table><p align='center'><font face='tahoma' size='2'><b>" & intCont & "</b> componentes instalados de "
strTxt = strTxt & "<b>" & UBound(arrListaComponentes) + 1 & "</b> no provedor.</font> </p>"
VerificaComponentes = strTxt 
End Function

Response.Write VerificaComponentes
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então..

Até agora deu certo, só que teve uma problema.

Estou tentando validar o tipo de arquivo que ele me envia, porém não estou conseguindo. Já dei uma olhada em outros post que tiveram o mesmo problema, porém ainda não tive nenhum sucesso.

Dá forma que ele está agora, ele valida correto, porém não no momento em que o argumento é falso ele ainda salva.

E isso não deveria acontecer. Se eu deixar o (Upload.Save "C:\upload") dentro do primeiro if ele não salva.

 

O que eu posso fazer para resolver??

       <%
   Server.ScriptTimeout = 99999

   Set UploadProgress = Server.CreateObject("Persits.UploadProgress")
   PID = UploadProgress.CreateProgressID()

   Set Upload = Server.CreateObject("Persits.Upload")

   ' This is needed to enable the progress indicator
   Upload.ProgressID = Request.QueryString("PID")
   Upload.IgnoreNoPost = True ' to use upload script in the same file as the form.


   'Upload.Save "E:\digilabs\dgl"
   Upload.Save "C:\upload"

   If Upload.Files.Count > 0 Then
         for each file in Upload.Files
           if File.Ext = ".dgl" or File.Ext = ".dlp" then
                Response.Write "<script type='text/javascript'>alert('Seu arquivo foi enviado com sucesso.')</script>"
           else 
               Response.Write "<script type='text/javascript'>alert('O sistema não aceita arquivos com extensão diferente de .DGL ou .DLP. Tente novamente')</script>"
           end if
         next
   End If

   ' Tira o objeto da memória
   Set Upload = Nothing
   %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo

 

Upload aceitando apenas imagens Gif e Jpg

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<HTML>
<HEAD>
<TITLE>Upload</TITLE>
<style type="text/css">
<!--
.campo_alerta
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
border: 1px solid black;
background-color: #cccccc;
}
.texto_pagina
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: black;
}

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

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

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

.botao_enviar
{
font-family: Tahoma, Verdana, Arial;
font-size: 11px;
color: black;
background-color: gainsboro;
}
-->
</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 = "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")
'response.write(pasta_imagens & "\" & filename)
'response.end()

   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>

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.