Newsgroup: it.lavoro.professioni.webmaster
Titolo: Problema con l'upload di file in ASP

Ciao,
ho bisogno di un aiuto, ho realizzato delle pagine in ASP per effettuare
l'upload di file (da client a server) con il supporto di un database che
contiene questi ultimi, utilizzando un codice sorgente free. Eseguendo
l'upload di file inferiori a circa 1MB tutto mi funziona a meraviglia,
quando invece voglio "uppare" un file da 50MB si blocca tutto; eppure non
trovo dei limiti da impostare nel codice asp, il sito risiede in un spazio
web illimitato per contratto (Aruba), il tutto poi risiede nella cartella
"public" come consigliato dal provider.
Mi potete aiutare non capisco come mai non funziona, conoscete qualche altro
script asp free più affidale per l'upload di file di grosse dimensioni
(60-70MB)? devo ammetterlo in ASP sono ancora troppo ignorante.
grazie per l'aiuto se qualcuno mi risponde!
allego codice pagina asp
<%
  Class Loader
    Private dict
    Private Sub Class_Initialize
      Set dict = Server.CreateObject("Scripting.Dictionary")
    End Sub
    Private Sub Class_Terminate
      If IsObject(intDict) Then
        intDict.RemoveAll
        Set intDict = Nothing
      End If
      If IsObject(dict) Then
        dict.RemoveAll
        Set dict = Nothing
      End If
    End Sub
    Public Property Get Count
      Count = dict.Count
    End Property
    Public Sub Initialize
      If Request.TotalBytes > 0 Then
        Dim binData
          binData = Request.BinaryRead(Request.TotalBytes)
          getData binData
      End If
    End Sub
    Public Function getFileData(name)
      If dict.Exists(name) Then
        getFileData = dict(name).Item("Value")
        Else
        getFileData = ""
      End If
    End Function
    Public Function getValue(name)
      Dim gv
      If dict.Exists(name) Then
        gv = CStr(dict(name).Item("Value"))
        gv = Left(gv,Len(gv)-2)
        getValue = gv
      Else
        getValue = ""
      End If
    End Function
    Public Function saveToFile(name, path)
      If dict.Exists(name) Then
        Dim temp
          temp = dict(name).Item("Value")
        Dim fso
          Set fso = Server.CreateObject("Scripting.FileSystemObject")
        Dim file
          Set file = fso.CreateTextFile(path)
            For tPoint = 1 to LenB(temp)
                file.Write Chr(AscB(MidB(temp,tPoint,1)))
            Next
            file.Close
          saveToFile = True
      Else
          saveToFile = False
      End If
    End Function
    Public Function getFileName(name)
      If dict.Exists(name) Then
        Dim temp, tempPos
          temp = dict(name).Item("FileName")
          tempPos = 1 + InStrRev(temp, "\")
          getFileName = Mid(temp, tempPos)
      Else
        getFileName = ""
      End If
    End Function
    Public Function getFilePath(name)
      If dict.Exists(name) Then
        Dim temp, tempPos
          temp = dict(name).Item("FileName")
          tempPos = InStrRev(temp, "\")
          getFilePath = Mid(temp, 1, tempPos)
      Else
        getFilePath = ""
      End If
    End Function
    Public Function getFilePathComplete(name)
      If dict.Exists(name) Then
        getFilePathComplete = dict(name).Item("FileName")
      Else
        getFilePathComplete = ""
      End If
    End Function
    Public Function getFileSize(name)
      If dict.Exists(name) Then
        getFileSize = LenB(dict(name).Item("Value"))
      Else
        getFileSize = 0
      End If
    End Function
    Public Function getFileSizeTranslated(name)
      If dict.Exists(name) Then
        temp = 1 + LenB(dict(name).Item("Value"))
          If Len(temp) <= 3 Then
            getFileSizeTranslated = temp & " bytes"
          ElseIf Len(temp) > 6 Then
            temp = FormatNumber(((temp / 1024) / 1024), 2)
            getFileSizeTranslated = temp & " megabytes"
          Else
            temp = FormatNumber((temp / 1024), 2)
            getFileSizeTranslated = temp & " kilobytes"
          End If
      Else
        getFileSizeTranslated = ""
      End If
    End Function
    Public Function getContentType(name)
      If dict.Exists(name) Then
        getContentType = dict(name).Item("ContentType")
      Else
        getContentType = ""
      End If
    End Function
  Private Sub getData(rawData)
    Dim separator
      separator = MidB(rawData, 1, InstrB(1, rawData, ChrB(13)) - 1)
    Dim lenSeparator
      lenSeparator = LenB(separator)
    Dim currentPos
      currentPos = 1
    Dim inStrByte
      inStrByte = 1
    Dim value, mValue
    Dim tempValue
      tempValue = ""
    While inStrByte > 0
      inStrByte = InStrB(currentPos, rawData, separator)
      mValue = inStrByte - currentPos
      If mValue > 1 Then
        value = MidB(rawData, currentPos, mValue)
        Dim begPos, endPos, midValue, nValue
        Dim intDict
          Set intDict = Server.CreateObject("Scripting.Dictionary")
          begPos = 1 + InStrB(1, value, ChrB(34))
          endPos = InStrB(begPos + 1, value, ChrB(34))
          nValue = endPos
        Dim nameN
          nameN = MidB(value, begPos, endPos - begPos)
        Dim nameValue, isValid
          isValid = True
          If InStrB(1, value, stringToByte("Content-Type")) > 1 Then
            begPos = 1 + InStrB(endPos + 1, value, ChrB(34))
            endPos = InStrB(begPos + 1, value, ChrB(34))
            If endPos = 0 Then
              endPos = begPos + 1
              isValid = False
            End If
            midValue = MidB(value, begPos, endPos - begPos)
              intDict.Add "FileName", trim(byteToString(midValue))
            begPos = 14 + InStrB(endPos + 1, value,
stringToByte("Content-Type:"))
            endPos = InStrB(begPos, value, ChrB(13))
            midValue = MidB(value, begPos, endPos - begPos)
              intDict.Add "ContentType", trim(byteToString(midValue))
            begPos = endPos + 4
            endPos = LenB(value)
            nameValue = MidB(value, begPos, endPos - begPos)
          Else
            nameValue = trim(byteToString(MidB(value, nValue + 5)))
          End If
          If isValid = true Then
            intDict.Add "Value", nameValue
            intDict.Add "Name", nameN
            dict.Add byteToString(nameN), intDict
          End If
      End If
      currentPos = lenSeparator + inStrByte
    Wend
  End Sub
  End Class
  Private Function stringToByte(toConv)
    Dim tempChar
     For i = 1 to Len(toConv)
       tempChar = Mid(toConv, i, 1)
      stringToByte = stringToByte & chrB(AscB(tempChar))
     Next
  End Function
  Private Function byteToString(toConv)
    For i = 1 to LenB(toConv)
      byteToString = byteToString & chr(AscB(MidB(toConv,i,1)))
    Next
  End Function
%>

 allego codice pagina asp
e tu vuoi fare l'upload con uno script ASP...? dovresti settare un timeout
di 18 anni!
se vuoi fare upload di file piu' grandi di 1-2 mb devi utilizzare per forza
un componente tipo smartupload... dipende su aruba cosa mettono a
disposizione!
ciao
--
Lino Mari [mod - it.economia.e-commerce]
http://www.ebow.it
 - e-business on web!
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004
I veri problemi della vita saranno sicuramente cose che non t'erano mai
passate per la mente.

Grazie Lino,
potrei comunque modificare questo timeout? dove vado a prenderlo questo
valore?
si tratta comunque di connessioni ADSL e questi tempi non sono così elevati
per la connessione adl database.
ho guardato nel sito ASP smartupload, ma la licenza per questa utlity è
troppo costosa!
non ci sono altre soluzioni?
Il mio progetto è realizzare uno spazio web di scambio file (oltre 50MB
l'uno) con relative autorizzazioni.
Mi sapete consigliare qualcosa?


 Mi sapete consigliare qualcosa?
ti server un hosting che ti metta a disposizione un componente per fare
l'upload... (chiedi ad aruba se ce l'hanno)


quando invece voglio "uppare" un file da 50MB si blocca tutto; eppure non
esattamente, cosa intendi con "si blocca tutto"?  è una delle frasi
che più mi fanno incazzare nella vita.  veramente, quando sento gente
che dice che si è bloccato "tutto" gli darei un cazzotto nel muso.
tutto che?
si blocca cosa e quando?
non dipenderà dal fatto che la procedura asp va in time out, visto che
se uploada qualcosa di grosso non c'è output su schermo per un bel
po'?
-- 
dipende

l'uno) con relative autorizzazioni.
allora, i casi son due.  o lo fai per divertimeno, o lo fai per
lavoro.  se lo fai per divertimento, fine.  trovati un giocherello più
economico.  anche a me piacerebbe come hobby guidare una porsche, ma
purtroppo adesso non me la posso permettere.  se lo fai per lavoro ci
guadagni.  se ci guadagni è anche giusto che tu investa per pagare il
lavoro altrui.
-- 
dipende