Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    The HTTP headers are already written to the client browser

    Ciao, ho un problema che non riesco a risolvere.

    Tramite ASP esporto in XML una serie di dati contenuti in un DB MySQL.
    I dati sono tanti ed ho pensato di includere nello script ASP il classico msg «Please Wait», ma ottengo questo errore mai visto prima:

    codice:
    Response object error 'ASP 0156 : 80004005' 
    
    Header Error 
    
    /____EsportazioneXML/_IncludeXMLtoCSV.asp, line 157
    
    The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
    Riga errore:
    codice:
    Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName

    Questa è la pagina ASP:
    codice:
    <%@LANGUAGE="VBSCRIPT"%>
    <%
    
    Session.LCID = 1040
    Session.Timeout = 200 
    Response.Buffer = True 
     
    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open "DRIVER={MySQL ODBC 5.1 Driver};SERVER=......;"
    
    %>
    
    <html>
    
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nuova pagina 1</title>
    </head>
    
    <body>
    
    
    <div id="splash" style="position:absolute; top:25%; z-index:1">
      <table width="100%"  border="0" cellspacing="1" cellpadding="0">
        <tr>
          <td align="center">      
    <p align="center"> </p> 
    <p align="center"> 
    [img]../img/ajax-loader-vincenzo.gif[/img]</p> 
    <p align="center" style="margin-top: 0; margin-bottom: 0"> 
    <font face="Verdana" color="#800000" style="font-size: 9pt">Attendere, prego...</font></p> 
    <p align="center" style="margin-top: 0; margin-bottom: 8"> 
    <font face="Verdana" color="#800000" style="font-size: 9pt">La ricerca dei dati richiesti è in corso...</font></p>       
       </td>
        </tr>
      </table>
    </div>
    
    
    <% Response.Flush() %>
    <% SQL = "SELECT * FROM tabellaProva "%>
    <%
    
       Set Rs = CreateObject("ADODB.Recordset")
       Rs.Open SQL, cn
          
       if not Rs.eof then 
       
       Rs.Save xmlDoc, 1 
       xmlDoc.Save Server.MapPath("____EsportazioneXML/prova.xml)
       
       end if
    
       Rs.Close() 
       Set Rs = Nothing 
    
    %>
    
    <%
    
     Set oDOM = CreateObject("MSXML2.DOMDocument.4.0")
     oDOM.async = False 
     
     oDOM.Load Server.Mappath("____EsportazioneXML/prova.xml)
      
     Set oXSL = CreateObject("MSXML2.DOMDocument.4.0") 
     oXSL.async = False 
     
     oXSL.Load Server.Mappath("____EsportazioneXML/Trasform_csv.xsl") 
     
     strTransform = oDOM.transformNode(oXSL) 
     
     Set fso = CreateObject("Scripting.FileSystemObject")
      
     strPath = Server.Mappath("____EsportazioneXML/ & Session.SessionID & ".xls")   
     Session("FileName") = Server.Mappath("____EsportazioneXML/" & Session.SessionID & ".xls")
        
     Set file = fso.opentextfile(strPath, 2, True)
     file.write replace(strTransform, "_", " ")
    
     file.Close() 
     Set file = Nothing
      
     Set fso = Nothing
                            
     Set oDOM = Nothing 
     Set oXML = Nothing 
     Set oXSL = Nothing 
    
    %>
    </body>
    <script language="JavaScript">
     document.getElementById('splash').style.visibility = "hidden";
    </script>
    </html>
    
    <%
     cn.Close()
     Set cn = Nothing
    %>
    
    <%
           
            strFilePath = Session("FileName")
            
            Set oFso = CreateObject("Scripting.FileSystemObject") 
            Set oFile = oFso.GetFile(strFilePath) 
            
            strFileName = UCase(oFile.Name) 
            strFileSize = CLNG(oFile.size) 
            
            Set oFile = Nothing 
            Set oFso = Nothing 
    
            Const adTypeBinary = 1 
    
            Response.Clear 
    
            Set objStream = Server.CreateObject("ADODB.Stream") 
            objStream.Open 
            objStream.Type = adTypeBinary 
            objStream.LoadFromFile strFilePath 
    
            strFileType = lcase(Right(strFileName, 4)) 
         
        Select Case strFileType 
            Case ".asf" 
                ContentType = "video/x-ms-asf" 
            Case ".avi" 
                ContentType = "video/avi" 
            Case ".doc" 
                ContentType = "application/msword" 
            Case ".zip" 
                ContentType = "application/zip" 
                ContentType = "application/x-zip-compressed" 
            Case ".xls" 
                ContentType = "application/vnd.ms-excel" 
            Case ".gif" 
                ContentType = "image/gif" 
            Case ".jpg", "jpeg" 
                ContentType = "image/jpeg" 
            Case ".wav" 
                ContentType = "audio/wav" 
            Case ".mp3" 
                ContentType = "audio/mpeg3" 
            Case ".mpg", "mpeg" 
                ContentType = "video/mpeg" 
            Case ".rtf" 
                ContentType = "application/rtf" 
            Case ".htm", "html" 
                ContentType = "text/html" 
            Case ".asp" 
                ContentType = "text/asp" 
            Case Else 
                ContentType = "application/octet-stream" 
        End Select 
         
        Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName 
        Response.AddHeader "Content-Length", strFileSize 
    
        Response.Charset = "UTF-8" 
        Response.ContentType = ContentType 
         
        Do While Not objStream.EOS 
            Response.BinaryWrite objStream.Read(8192)
            Response.Flush 
        Loop 
    
        objStream.Close 
        Set objStream = Nothing
           
    %>
    
    <%
    
        Set fs = Server.CreateObject("Scripting.FileSystemObject")
            
        if fs.FileExists(Session("FileName")) then
           fs.DeleteFile(Session("FileName"))
        end if
        
        if fs.FileExists(Server.MapPath("____EsportazioneXML/" & filename & "")) then
           fs.DeleteFile(Server.MapPath("____EsportazioneXML/" & filename & ""))
        end if    
        set fs = nothing
        
    %>

  2. #2
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Dunque... ho fatto un pò di prove e sto adesso utilizzando jquery e Ajax.
    Il preload funziona, ma non funziona il download del file...

    La cosa strana è che se richiamo lo script così: http://localhost/_____xml/default.asp il download del file funziona correttamente, mentre se richiamo default.asp dalla pagina dove ho inserito jquery ed ajax (richiamaDefault.asp) vedo i records estratti dalla query stampati a video sul browser ed il download del file non viene proposto.... da cosa dipende?

    Grazie---

    RichiamaDefault.asp
    codice:
    <html>
    <head>
          <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
          <script type="text/javascript">
    
          $(document).ready(function(){
                  $("#contentArea").load("default.asp", function() {
                  $("#loading").remove();
                  });
    
          });
    
          </script>
    </head>
    
    <body>
    	
    	<div id="loading">
    		
    
    [img]ajax-loader.gif[/img]</p>
    	</div>
    	
    	<div id="contentArea"> </div>
    </body>
    Default.asp
    codice:
    <%@LANGUAGE="VBSCRIPT"%>
    <% Response.Buffer = True %>
    
    <%
    
    Session.LCID = 1040
    Session.Timeout = 200
    
       Function Sleep(sec)
          Dim Start:Start = Timer:While (Timer-Start<sec):Wend
       End function   
       Sleep 3
    
     
    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;DATABASE=...;OPTION=3;"
    
    %>
    <%
    
     filename = Session.SessionID & ".xml"
     
     Set xmlDoc = Server.CreateObject("MSXML2.DOMDocument.4.0")
     Set xslDoc = Server.CreateObject("MSXML2.DOMDocument.4.0")
    
    %>
    
    <% 
    
       SQL = " SELECT * FROM tbl_login LIMIT 0, 1000 "
       Set Rs = CreateObject("ADODB.Recordset")
       Rs.Open SQL, cn
          
       if not Rs.eof then    
         Rs.Save xmlDoc, 1 
         xmlDoc.Save Server.MapPath("____ExportXML/" & filename & "")   
       end if
    
       Rs.Close() 
       Set Rs = Nothing 
    
    %>
    <%
    
     Set oDOM = CreateObject("MSXML2.DOMDocument.4.0")
     oDOM.async = False 
     
     oDOM.Load Server.Mappath("____ExportXML/" & filename & "")
      
     Set oXSL = CreateObject("MSXML2.DOMDocument.4.0") 
     oXSL.async = False 
     
     oXSL.Load Server.Mappath("____ExportXML/Trasform_csv.xsl") 
     
     strTransform = oDOM.transformNode(oXSL) 
     
     Set fso = CreateObject("Scripting.FileSystemObject")
      
     strPath = Server.Mappath("____ExportXML/" & Session.SessionID & ".xls")   
     Session("FileName") = Server.Mappath("____ExportXML/" & Session.SessionID & ".xls")
        
     Set file = fso.opentextfile(strPath, 2, True)
     file.write replace(strTransform, "_", " ")
    
     file.Close() 
     Set file = Nothing
      
     Set fso = Nothing
                            
     Set oDOM = Nothing 
     Set oXML = Nothing 
     Set oXSL = Nothing 
     
     cn.Close()
     Set cn = Nothing
      
    %>
    
    <%
            '''INIZIO ADOSEND      
            Set oFso = CreateObject("Scripting.FileSystemObject") 
            Set oFile = oFso.GetFile(strPath) 
            
            strFileName = UCase(oFile.Name) 
            strFileSize = CLNG(oFile.size) 
            
            Set oFile = Nothing 
            Set oFso = Nothing 
    
            Const adTypeBinary = 1 
    
            Response.Clear 
    
            Set objStream = Server.CreateObject("ADODB.Stream") 
            objStream.Open 
            objStream.Type = adTypeBinary 
            objStream.LoadFromFile strPath 
    
            strFileType = lcase(Right(strFileName, 4)) 
         
        Select Case strFileType 
            Case ".asf" 
                ContentType = "video/x-ms-asf" 
            Case ".avi" 
                ContentType = "video/avi" 
            Case ".doc" 
                ContentType = "application/msword" 
            Case ".zip" 
                ContentType = "application/zip" 
                ContentType = "application/x-zip-compressed" 
            Case ".xls" 
                ContentType = "application/vnd.ms-excel" 
            Case ".gif" 
                ContentType = "image/gif" 
            Case ".jpg", "jpeg" 
                ContentType = "image/jpeg" 
            Case ".wav" 
                ContentType = "audio/wav" 
            Case ".mp3" 
                ContentType = "audio/mpeg3" 
            Case ".mpg", "mpeg" 
                ContentType = "video/mpeg" 
            Case ".rtf" 
                ContentType = "application/rtf" 
            Case ".htm", "html" 
                ContentType = "text/html" 
            Case ".asp" 
                ContentType = "text/asp" 
            Case Else 
                ContentType = "application/octet-stream" 
        End Select 
         
        Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName 
        Response.AddHeader "Content-Length", strFileSize 
    
        Response.Charset = "UTF-8" 
        Response.ContentType = ContentType 
         
        Do While Not objStream.EOS 
            Response.BinaryWrite objStream.Read(8192)
            Response.Flush 
        Loop 
    
        objStream.Close 
        Set objStream = Nothing
        '''FINE ADOSEND
                  
    %>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.