Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    ADODB.Stream che si tronca in presenza di spazio bianco nel nome file

    Salve a tutti io uso questo script per fare il download di alcuni file dal server e non far vedere il loro reale indirizzo

    codice:
    Response.Expires=0
    Response.Buffer=0
    Const CHUNK = 2048
    strFilePath = Server.MapPath(downloadfile)
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    set objFile = fso.GetFile(strFilePath)
    Response.AddHeader "Content-Disposition", "attachment; filename=" & objFile.Name
    Response.AddHeader "Content-Length", objFile.Size
    Response.ContentType = "application/octet-stream"
    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Open
    objStream.Type = 1 ' adTypeBinary
    objStream.LoadFromFile strFilePath
    lSize = objStream.Size
    lBlocks = 1
    For lBlocks = lBlocks To lSize \ CHUNK
    If Response.IsClientConnected = False Then Exit For
    Response.BinaryWrite objStream.Read(CHUNK)
    Next
    lSize = lSize Mod CHUNK
    If lSize > 0 And Response.IsClientConnected = True Then
    Response.BinaryWrite objStream.Read(lSize)
    End If
    objStream.Close
    Set objStream = Nothing
    lo scrip funziona alla grandissima solo che se il mio file si chiama per esempio prova file.pdf (ovvero con uno spazio) quando vado a cliccare sul download mi viene scaricato un file di nome prova senza estensione.
    Praticamente viene preso il nome fino al primo spazio bianco perdendo quindi l'estensione.
    Apparte il fatto che i file dovrebbero tutti essere senza spazio e questo lo so ma il difficile è farlo capire alla gente, ma mi chiedevo c'è un modo per poter risolvere il problema? anche mettendo l'estensione direttamente al nome del file....

    grazie a tutti

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Prova inserendo %20 al posto dello spazio.

    Roby

  3. #3
    Il problema è che i file sul server li caricano i clienti e quindi non posso dirgli metti "%20" gli avevo già detto "non mettetici li spazi" ma invece........

    c'è un modo per gestire i %20 nel codice dello script che ho postato?

    ciao e grazie

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi fare una replace

    codice:
    nomefile = replace(nomefile," ","%20")
    Roby

  5. #5
    grazie ora ho capito!!!

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.