Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38
  1. #1

    Problema variabile Session

    Ciao a tutti,
    sto cercando d'integrare uno script ASP.NET per il caricamento e lo scopattamento di file ZIP in upload, ora ho trovato questo :
    Codice PHP:
    <%@ Page Language="VB" Trace="false" Debug="false" %>
    <%@ 
    Register TagPrefix="ic" Namespace="ICSharpCode.SharpZipLib" Assembly="ICSharpCode.SharpZipLib, Version=0.85.1.271, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, Safe=true" %>
    <%@ 
    import Namespace="ICSharpCode.SharpZipLib.Zip" %>
    <%@ 
    import Namespace="ICSharpCode.SharpZipLib.Checksums" %>
    <%@ 
    import Namespace="System.IO" %>
    <
    script runat="server">

        Public 
    Sub scompatta(ByVal cartella As String_
                                 Optional ByVal zipFic 
    As String ""_
                                 Optional ByVal elimina 
    As Boolean False_
                                 Optional ByVal rinomina 
    As Boolean False)
        
             
    Dim flag as boolean 'gestisce il corretto scompattamento
             dim fileName as string
             dim elencofile,directoryName,serverFolder as string '
    stringa di testo con all'interno i files scompattati
        
             If Not zipFic.ToLower.EndsWith(".zip") Then
                 zipFic = Directory.GetFiles(zipFic, "*.zip")(0)
             End If
             '
             
    Dim z As New ZipInputStream(File.OpenRead(zipFic))
             
    Dim theEntry As ZipEntry
             
    '
        Do
                 theEntry = z.GetNextEntry()
          If Not theEntry Is Nothing Then '
    if 1
                 directoryName 
    Path.GetDirectoryName(theEntry.Name)
                
    ' fileName = Path.GetFileName(theEntry.Name)
                 serverFolder = cartella
            if (directoryName<> "") then '
    se lo zip  contiene cartelle
                    Directory
    .CreateDirectory(serverFolder +"\"+directoryName)
                    'response.write("
    creata directory"+serverFolder +"\"+directoryName+"
    ")
                     fileName  = directoryName & "
    \" & Path.GetFileName(theEntry.Name)
            else
                     fileName  =  Path.GetFileName(theEntry.Name)
            end if
                     elencofile +=fileName +"
    "
            if (Path.GetFileName(theEntry.Name)<> "") Then 'if 2 serve perchè vengono prese in considerazione anche le sole cartelle
                     
                     Dim streamWriter As FileStream
        
                     Try
                          streamWriter = File.Create(serverFolder+"
    \"+fileName)
                     Catch ex As DirectoryNotFoundException
                         lblZIP.forecolor=drawing.color.fromname("
    Red")
                         lblZIP.text="
    Errore!"
                         flag=true
                     End Try
                     '
                     Dim size As Integer
                     Dim data(2048) As Byte
                     Do
                         size = z.Read(data, 0, data.Length)
                         If (size > 0) Then
                             streamWriter.Write(data, 0, size)
                         Else
                             Exit Do
                         End If
                     Loop
                     streamWriter.Close()
            End If'if 2
                     
                 Else' if 1
                     Exit Do
                 End If 'if 1
             Loop
             z.Close()
        
             if not flag then
                 lblZIP.forecolor=drawing.color.fromname("
    Green")
                 lblZIP.text= "
    Lista file scompattati:
    "+elencofile
             end if
             ' elimina se richiesto il file zip: default --> non elimina
        
             If elimina Then
                 File.Delete(zipFic)
             End If
             ' rinomina se richiesto
             If rinomina Then
                 try
                     File.delete (zipFic & "
    .bak")
                 finally
                     File.Copy(zipFic, zipFic & "
    .bak")
                 end try
             End If
        
        End Sub
        
        Sub BtnUp_Click(sender As Object, e As EventArgs)
            dim strFile as string
            strFile = inputFile.PostedFile.FileName
            'Ricavo il nome del file SENZA percorso.
            Dim strNomeFile as string
            strNomeFile = System.IO.Path.GetFileName(strFile)
            dim strPercorsoFileUpload,strPercorsoFileUnzip as string
            'QUI occorre specificare il path dove viene inviato lo zip
            'NOTA: va reso dinamico
           strPercorsoFileUpload =server.mappath("
    /public/temp")
            'QUI occorre specificare il path dove vengono estratti i file contenuti nello zip
            'NOTA: va reso dinamico
           strPercorsoFileUnzip =server.mappath("
    /public/temp/unzip")
             
            
            'Effettuo UPLOAD
            inputFile.PostedFile.SaveAs( strPercorsoFileUpload & "
    \" & strNomeFile)
            'scompatta lo zip
            scompatta(strPercorsoFileUnzip,strPercorsoFileUpload & "
    \" & strNomeFile,true,false)
        End Sub

    </script>
    <html>
    <head>
        <title>Upload Files zippati</title>
    </head>
    <body>
        <form runat="
    server">
            <table width="
    100%" align="center">
                <tbody>
                    <tr>
                        <td align="
    middle">
                            


                                E'
                                possibile spedire al server delle cartelle compresse (file zip).
                                

                                

                                Scegli
                                il file
                                <input id="
    inputFile" type="file" runat="server" />
                                

                                

                                <input id="
    BtnUp" type="button" value="Invia al server" runat="server" onserverclick="BtnUp_Click" />
                            </p>
                        </td>
                    </tr>
                </tbody>
            </table>
            


            </p>
            <p align="
    center">
                <asp:Label id="
    lblZIP" runat="server" font-names="Verdana" font-size="XX-Small" font-bold="True"></asp:Label>
                

            </p>
        </form>
    </body>
    </html> 
    ora il problema è qui:

    strPercorsoFileUpload =server.mappath("/public/temp")
    'QUI occorre specificare il path dove vengono estratti i file contenuti nello zip
    'NOTA: va reso dinamico
    strPercorsoFileUnzip =server.mappath("/public/temp/unzip")
    se provo a fare questo: strPercorsoFileUpload =server.mappath("/public/temp" & session("cartella_dinamica")) semplicemente la variabile session viene ignorata!!!
    Ho provato fatto test e la variabile session in questione negli altri casi restituisce il percorso qui nulla!!! :master:

    Forse è un problema di sintassi o cosa?

  2. #2

    Re: Problema variabile Session

    Originariamente inviato da fabiodm75
    se provo a fare questo: strPercorsoFileUpload =server.mappath("/public/temp" & session("cartella_dinamica")) semplicemente la variabile session viene ignorata!!!
    Domandina stupida, quando carichi la variaìbile Session("cartella_dinamica") in questione? Ci metti anche lo "/" per dividere temp dalla suddetta cartella dinamica?

    Marco Cavallo
    WebMaster & Programmer
    Il mio sito in continua evoluzione...
    Vieni a trovarmi!
    http://www.artcava.net/

  3. #3

    Re: Re: Problema variabile Session

    Originariamente inviato da artcava
    Domandina stupida, quando carichi la variaìbile Session("cartella_dinamica") in questione? Ci metti anche lo "/" per dividere temp dalla suddetta cartella dinamica?

    si perchè? :master:

  4. #4
    No appunto, era una domandina stupida, l'altra domanda era "quando carichi la variabile in Session"? E mentre ci siamo, come e con cosa la carichi?

    Marco Cavallo
    WebMaster & Programmer
    Il mio sito in continua evoluzione...
    Vieni a trovarmi!
    http://www.artcava.net/

  5. #5
    Allora la pagina da cui parto è in asp classic, salvo la variabile session


    Session("cartella_dinamica") = "/" & cartella & "/images"

    dove cartella può avere un valore del tipo 06062007 aggiungendo "/images" ottengo:

    /06062007/images

    che aggiunto qui (nella pagina ASPX):

    strPercorsoFileUpload =server.mappath("/public/temp" & session("cartella_dinamica")) dovrebbe dare come risultato:

    /public/temp/06062007/images

    in realtà facendo un response.write di strPercorsoFileUpload risulta essere: /public/temp quindi ignora la variabile di sessione, ho provato anche con la querystring ma mi dà errore e dice che non è supportata... forse c'è qualche problema nell'integrazione tra ASP eASP.NET?

  6. #6

    AHHHHH!

    Le sessioni di ASP e di ASP.NET non si parlano fra loro... Quindi la variabile cartella_dinamica di .NET è un'altra rispetto a quella di ASP

    Da chi non sarebbe supportato il QueryString? L'Oggetto Request esiste in entrambe le tecnologie...

    Se però preferisci non passare il pezzo di path nell'URL perché non sposti la regola di costruzione dinamica nella pagina .NET, o comunque nella pagina in cui la usi...?

    Marco Cavallo
    WebMaster & Programmer
    Il mio sito in continua evoluzione...
    Vieni a trovarmi!
    http://www.artcava.net/

  7. #7
    Ciao, allora ho trovato il problema:
    http://www.aspitalia.com/script/384/...P-ASP.NET.aspx

    praticamente come hai detto te le variabili di sessione di ASP e ASP.NET sono differenti, in questo articolo "spiega" come ovviare al problema
    valore = Request.Cookies("session")("userID")
    :master: sinceramente non ho capito molto, ho fatto così:

    nella pagina ASP:
    Response.cookies("cartella_dinamica") = "/" & cartella & "/images"
    nella pagina ASP:
    Dim destinazione As HttpCookie = Request.Cookies("cartella_dinamica")

    If not destinazione is nothing then
    Response.Write( Request.Cookies("cartella_dinamica").ToString )
    end if
    Ricevo questo errore:

    Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

    Compiler Error Message: BC30689: Statement cannot appear outside of a method body.

    Source Error:



    Line 8: Dim destinazione As HttpCookie = Request.Cookies("cartella_dinamica")
    Line 9:
    Line 10: If not destinazione is nothing then
    Line 11: Response.Write( Request.Cookies("cartella_dinamica").ToString )
    Line 12: end if
    forse sbaglio la posizione del request? aiuto

  8. #8
    Sono arrivato a questo:

    Dim valore1 as HttpCookie = Request.Cookies("cartella_dinamica")


    ....


    strPercorsoFileUpload =server.mappath("/public/temp"+valore1)

    Ricevo l'errore proprio su questa riga:

    Compiler Error Message: BC30452: Operator '+' is not defined for types 'String' and 'System.Web.HttpCookie'.
    ma come faccio per legare la stringa?

  9. #9
    Proprio perché non è una stringa, il tuo valore1 è un oggetto di tipo HttpCookie quindi per prenderne solo il valore devi scrivere valore1.Value

    Marco Cavallo
    WebMaster & Programmer
    Il mio sito in continua evoluzione...
    Vieni a trovarmi!
    http://www.artcava.net/

  10. #10
    Ciao ho aggiunto il value a valore1 ora però mi dà questo errore...

    Request is not available in this context

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.


    Exception Details: System.Web.HttpException: Request is not available in this context
    che significa che non posso usare request in questo contesto? :master:

    Io ho posizionato qui il codice del cookie:

    Codice PHP:
    <%@ Page Language="VB" Trace="false" Debug="false" %>
    <%@ 
    Register TagPrefix="ic" Namespace="ICSharpCode.SharpZipLib" Assembly="ICSharpCode.SharpZipLib, Version=0.85.1.271, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, Safe=true" %>
    <%@ 
    import Namespace="ICSharpCode.SharpZipLib.Zip" %>
    <%@ 
    import Namespace="ICSharpCode.SharpZipLib.Checksums" %>
    <%@ 
    import Namespace="System.IO" %>
    <
    script runat="server">
    Dim valore1 as HttpCookie Request.Cookies("cartella_dinamica"
    devo posizionarlo in qualche altro punto? :master:

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.