Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196

    problema upload file grossi

    Ciao ho un problema con l'upload di file sul server,in particolare non riesco a fare l'upload di file superiori ai 150 Kb.
    Dal form dove seleziono il file lancio questa procedura
    <%@ Language=VBScript %>


    <%
    Server.ScriptTimeOut = 600

    ' Create the FileUploader
    Dim Uploader, File
    Set Uploader = New FileUploader

    ' This starts the upload process
    Uploader.Upload()

    Response.Write "Upload eseguito correttamente " & Uploader.Form("fullname") & "
    "

    ' Check if any files were uploaded
    If Uploader.Files.Count = 0 Then
    Response.Write "File(s) not uploaded."
    Else
    ' Loop through the uploaded files
    For Each File In Uploader.Files.Items

    ' Save the file
    File.SaveToDisk "c:\Inetpub\www.sito.com\upload"

    ' Output the file details to the browser
    Response.Write "Nome file: " & File.FileName & "
    "
    Response.Write "Dimensioni: " & File.FileSize & " bytes
    "
    Response.Write "Tipo: " & File.ContentType & "

    "
    Next
    End If
    %>
    Nella pagina upload.asp faccio questo:
    <%
    Class FileUploader
    Public Files
    Private mcolFormElem

    Private Sub Class_Initialize()
    Set Files = Server.CreateObject("Scripting.Dictionary")
    Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
    End Sub

    Private Sub Class_Terminate()
    If IsObject(Files) Then
    Files.RemoveAll()
    Set Files = Nothing
    End If
    If IsObject(mcolFormElem) Then
    mcolFormElem.RemoveAll()
    Set mcolFormElem = Nothing
    End If
    End Sub

    Public Property Get Form(sIndex)
    Form = ""
    If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
    End Property

    Public Default Sub Upload()
    Dim biData, sInputName
    Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
    Dim nPosFile, nPosBound

    biData = Request.BinaryRead(Request.TotalBytes)
    nPosBegin = 1
    nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

    If (nPosEnd-nPosBegin) <= 0 Then Exit Sub

    vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
    nDataBoundPos = InstrB(1, biData, vDataBounds)

    Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))

    nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
    nPos = InstrB(nPos, biData, CByteString("name="))
    nPosBegin = nPos + 6
    nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
    sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
    nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
    nPosBound = InstrB(nPosEnd, biData, vDataBounds)

    If nPosFile <> 0 And nPosFile < nPosBound Then
    Dim oUploadFile, sFileName
    Set oUploadFile = New UploadedFile

    nPosBegin = nPosFile + 10
    nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
    sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
    oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))

    nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
    nPosBegin = nPos + 14
    nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

    oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))

    nPosBegin = nPosEnd+4
    nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
    oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)

    If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName), oUploadFile
    Else
    nPos = InstrB(nPos, biData, CByteString(Chr(13)))
    nPosBegin = nPos + 4
    nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
    If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
    End If

    nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
    Loop
    End Sub

    'String to byte string conversion
    Private Function CByteString(sString)
    Dim nIndex
    For nIndex = 1 to Len(sString)
    CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
    Next
    End Function

    'Byte string to string conversion
    Private Function CWideString(bsString)
    Dim nIndex
    CWideString =""
    For nIndex = 1 to LenB(bsString)
    CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1)))
    Next
    End Function
    End Class

    Class UploadedFile
    Public ContentType
    Public FileName
    Public FileData

    Public Property Get FileSize()
    FileSize = LenB(FileData)
    End Property

    Public Sub SaveToDisk(sPath)
    Dim oFS, oFile
    Dim nIndex

    If sPath = "" Or FileName = "" Then Exit Sub
    If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"

    Set oFS = Server.CreateObject("Scripting.FileSystemObject")
    If Not oFS.FolderExists(sPath) Then Exit Sub

    Set oFile = oFS.CreateTextFile(sPath & FileName, True)

    For nIndex = 1 to LenB(FileData)
    oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
    Next

    oFile.Close
    End Sub

    Public Sub SaveToDatabase(ByRef oField)
    If LenB(FileData) = 0 Then Exit Sub

    If IsObject(oField) Then
    oField.AppendChunk FileData
    End If
    End Sub

    End Class
    %>

    Questo è un codice che ho trovato già fatto ed effettivamente funziona perfettamente però solo per file molto piccoli.C'è qualche valore che dovrei modificare per l'upload di file + grossi?
    Oppure è qualche restrizione che potrebbe esserci sul server?
    Cosa dovrei controllare?

    Ciao grazie
    PHP, ASP, Javascript

  2. #2
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Cambia script di upload, cerca nel forum "upload Baol".
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

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.