Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    200

    Malfunzionamento salvataggio file di testo

    Cia a tutti!!!
    Nella mia applicazione il cliente deve avere la possibilità di scaricarsi un file di testo da lui generato.
    Per far salvare il file uso questo script:

    Codice PHP:
    Dim objStreamstrFileName
    strFileName 
    Request.QueryString("myfile")
    Set objStream Server.CreateObject("ADODB.Stream")
    objStream.Type ' adTypeBinary
    objStream.Open
    objStream.LoadFromFile Server.MapPath("esportazioni/" & strFileName)
    Istruiamo il browser sul tipo di file
    Response
    .AddHeader "Content-Disposition""attachment; filename=" Server.MapPath("esportazioni/" strFileName)
    Response.ContentType "application/octet-stream"
    Response.BinaryWrite objStream.Read
    objStream
    .Close
    Set objStream 
    Nothing 
    Ma non mi funziona in quanto mi apre il file ma non lo salva.
    Lo uso su win2003 server.
    Qualcuno sà spiegarmi dove sbaglio???

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Cosa vuol dire? Non capisco... fai creare un file all'utente (dove lo crea?) e poi glielo fai scaricare (dove?)... :master:
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    200
    Faccio selezionare all'utente una serie di nominativi che il server elabora e inserisce in un file. L'utente poi si deve scaricare il file che ha creato il server sul suo pc...

  4. #4

  5. #5
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Presumo che la scrittura del file sul server avvenga tramite FSO, sbaglio?

    E secondo quale criterio dovrebbe scaricare il file in locale?

    Non ti è sufficiente inserire questo alla fine dello script che crea il file?

    codice:
    		Response.write "<script language=""javascript"">" & _
    		               "alert(""File creato correttamente: "& Nomedeltuofile &""");"& _
    		               "window.location.href=""http://localhost/public/"& Nomedeltuofile &""";"& _
    		               "</script>"
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    200
    Ok, ci siamo, il problema è propio questo. Il file non viene salvato in locale, ma viene semplicemente aperto. Può dipendere dal fatto che il server è windows 2003?

  7. #7
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Originariamente inviato da Abraxas606
    Ok, ci siamo, il problema è propio questo. Il file non viene salvato in locale, ma viene semplicemente aperto. Può dipendere dal fatto che il server è windows 2003?
    devi forzare il download del file in questione:

    codice:
    <%
    
    '8***********************************************8
    ' Jason Withrow - For ASP101 July 2001
    ' This page forces the save as dialogue to prevent
    ' files from being opened in the browser.
    '
    ' jwithrow@mediaone.net
    '8***********************************************8
    
    
    Response.Buffer = True
    
    Dim strFilePath, strFileSize, strFileName
    
    ' added by edc 7.1.2003
    ' il nome del file viene passato in una session
    
    	If Session("FileName") = "" Then
    	   Response.Redirect "default.asp"
    	End If
    
    	Dim oFso, oFile
    
    	strFilePath = Server.MapPath(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
    
    ' end add
    
    Const adTypeBinary = 1
    
    'strFilePath = Request.QueryString("File")
    'strFileSize = Request.QueryString("Size")
    'strFileName = Request.QueryString("Name")
    
    Response.Clear
    
    '8*******************************8
    ' Requires MDAC 2.5 to be stable
    ' I recommend MDAC 2.6 or 2.7
    '8*******************************8
    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Open
    objStream.Type = adTypeBinary
    objStream.LoadFromFile strFilePath
    
    strFileType = lcase(Right(strFileName, 4))
        
    	' Feel Free to Add Your Own Content-Types Here
        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
                'Handle All Other Files
                ContentType = "application/octet-stream"
        End Select
    	
    	Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName
    	Response.AddHeader "Content-Length", strFileSize
    	' In a Perfect World, Your Client would also have UTF-8 as the default 
    	' In Their Browser
    	Response.Charset = "UTF-8"
    	Response.ContentType = ContentType
    	
    	Do While Not objStream.EOS
    		Response.BinaryWrite objStream.Read(1024)
    		Response.Flush
    	Loop
    
    objStream.Close
    Set objStream = Nothing
    
    %>
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    200
    Ma il codice da te postato non è la versione estesa dello stesso che ho postato io? Per il caso dei file .txt il ContentType=application/octet-stream, ma niente da fare, non mi slava il file. Si limita ad aprirlo.
    Sicuramente mi stò perdendo in un bicchier d'acqua....

  9. #9
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Forse questo è più adatto:

    codice:
    <%
     
    Dim ContentType
     
    Response.Buffer = True
     
    Const adTypeBinary = 1
     
    strFileName = Trim(Request.QueryString("file"))
     
    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Open
    objStream.Type = adTypeBinary
    objStream.LoadFromFile Server.MapPath(strFilename)
     
    Select Case LCase(Right(strFileName, 4))
      Case ".asf"
        ContentType = "video/x-ms-asf"
     
      Case ".avi"
        ContentType = "video/avi"
     
      Case ".doc"
        ContentType = "application/msword"
     
      Case ".txt"
        ContentType = "text/plain"
     
      Case ".zip"
        ContentType = "application/zip"
     
      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.Clear
     
    Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName
    Response.AddHeader "Content-Length", objStream.Size
    Response.ContentType = ContentType
     
    Response.BinaryWrite objStream.Read
    Response.Flush
    Response.End
     
    objStream.Close
    Set objStream = Nothing
     
    %>
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    200
    Niente da fare, continua ad aprirlo.

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.