Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Errore su Upload

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    209

    Errore su Upload

    Salve a tutti

    nell'utilizzare il componente Aspupload mi restituisce, non sempre, il seguente errore:

    Active Server Pages, ASP 0115 (0x80004005)
    In un oggetto esterno si è verificato un errore intercettabile (C0000005). Impossibile continuare l'esecuzione dello script

    Questo errore compare prima della scrittura su file system del file uploadato

    Ecco il codice

    Set upl = Server.CreateObject("Persits.Upload.1")
    Upl.SetMaxSize 250000000, True
    Upl.OverwriteFiles = False
    Count=Upl.save
    For Each Item in Upl.Form
    'Response.Write Item.Value & "<br>"
    Next
    For Each file in Upl.Files
    FileEstratto=file.extractfilename
    DimFile=file.size

    If DimFile > 0 Then
    ' fsdir è il path assoluto della cartella sulla quale effettueremo l'upload
    tstr = fsdir & fileestratto
    File.SaveAs(tstr)

    La cosa strana è che l'errore non sempre compare.

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    compare dove, esattamente?

    il codice è tutto lì o fai altro?
    (per il codice ricorda di usare i tag CODE per postarlo)

    visto che poi vuoi spostare i file, suggerisco di salvarli prima in memoria: SaveToMemory

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    209
    Grazie per la risposta, ho inserito l'istruzione SaveToMemory ma il problema permane quando prova a inviare file di dimensioni grandi sempre comunque inferiori alla dimensione massima.

    <code>
    gblTitle = "AREA DI SCAMBIO * "
    Set fso = CreateObject("Scripting.FileSystemObject")

    fsDir = replace(LCase(replace(Request.QueryString("d"),".. ",".")),"/.","/")
    If fsDir="" Then fsDir = Request.Form("fsDir")
    fsRoot = LCase(Replace(Server.MapPath(gblScriptName),"\" & gblScriptName,"") & "\")
    fsroot = fsroot & gblusrfld & "\"
    If Instr(fsdir,fsroot)<>1 Then fsDir = fsRoot
    If Lcase(fsDir)=Lcase(fsRoot) Then toplevel = TRUE
    basedir = Replace(Mid(fsDir,len(fsRoot),250),"\","/")
    webRoot = "http://" & Request.ServerVariables("SERVER_NAME") & Replace(Request.ServerVariables("SCRIPT_NAME"),"/" & gblScriptName,"")
    webroot = webroot & "/" & gblusrfld
    webbase = replace(webroot & basedir," ","%20")



    If Request.QueryString("u")="D" Then
    Action = "UPLOAD"
    Else
    Action = Request.Form("POSTACTION")
    pathname = Request.Form("PATHNAME")
    End If
    Select Case UCase(Action)
    Case "UPLOAD"
    Set upl = Server.CreateObject("Persits.Upload.1")
    Upl.SetMaxSize 250000000, True
    Upl.OverwriteFiles = False
    Upl.SaveToMemory
    For Each Item in Upl.Form
    'Response.Write Item.Value & "<br>"
    Next
    For Each file in Upl.Files
    FileEstratto=file.extractfilename
    DimFile=file.size

    If DimFile > 0 Then
    ' fsdir è il path assoluto della cartella sulla quale effettueremo l'upload
    tstr = fsdir & fileestratto
    File.SaveAs(tstr)

    If Err.Number = 8 Then
    Response.Write "La dimensione del file è superiore al massimo consentito."
    Else
    If Err <> 0 Then
    Response.Write "ERRORE : " & Err.Description
    End If
    End If

    ' tstr è il path assoluto della cartella + il nome del file
    tstr = Mid(tstr,len(fsroot))
    ' tstr è il path relativo della cartella + il nome del file
    tstr2 = Right(tstr, (Len(tstr) - InStrRev(tstr, "\")))
    tstr2 = left(tstr2, (Len(tstr2)-4 ))

    Session("tstr")=tstr
    session("upload")="SI"
    session("des")=tstr2
    session("som")=tstr2
    session("key")=tstr2
    CreaDocumento()
    else
    Response.Write "Errore"
    Response.end
    End If
    Next
    %><!--#INCLUDE FILE="../servizi/monitor/addmonitor.asp"--><%
    Case "SALVA"
    If IsEditable(pathname) Then
    If Instr(pathname,fsroot) = 1 Then
    Set f = fso.CreateTextFile(pathname)
    f.write Request.Form("FILEDATA")
    f.close
    End If
    End If
    Case "ELIMINA"
    If Request.Form("OK") = "on" Then
    parent = Request.Form("Parent")
    If Instr(pathname,fsroot) = 1 Then
    fso.DeleteFolder Left(pathname,Len(pathname)-1),TRUE
    EliminaCartella()
    response.redirect gblScriptName & "?d=" & URLSpace(parent)
    End If
    End If
    If Request.Form("DELETEOK") = "on" Then
    If Instr(pathname,fsroot) = 1 Then
    If fso.FileExists(Request.Form("PathName")) Then
    Set f = fso.GetFile(Request.Form("PathName"))
    f.delete
    EliminaDocumento()
    End If
    End If
    End If
    End Select
    </code>

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    prima di cercare altro... sicuro di poter caricare file da 250000000 byte (250 MB)?
    con che dimensione del file ti da questo problema?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    209
    Sia le estensioni di cui faccio Upload che le dimensioni sono ammesse.
    Aggiungo che il sito che da errore gira su IIS 5.1 mentre provato su IIS 7
    dopo aver modificato web.config come segue

    <code>
    <security>
    <requestFiltering>
    <!-- Modifica per upload sino a 250MB -->
    <requestLimits maxAllowedContentLength="262144000" />
    </requestFiltering>
    </security>
    </code>

    non da problemi e funziona correttamente.

    Ma su IIS 5.1 esiste il modo di ridimensionare tale valore?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    209
    Ho provato una serie di file (PDF e ZIP) da 10 MB sino a 180 MB non ho avuto problemi dopo mi ha dato l'errore

  7. #7
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    hai controllato il tempo? usi un timeout?


    quando ho indicato l'uso del tag code per postare il codice
    intendevo questo: [CODE]
    non questo: <code>

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    209
    Scusa ho confuso i Tag con le parentesi

    Il timeout dello script è di 360 secondi ma va in errore molto prima.

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.