Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Upload - errore

  1. #1

    Upload - errore

    Salve a tutti.
    Ho utilizzato una procedura per l'upload su server aruba composta da tre file da inserire nella cartella public.


    1- form_upload_01.asp
    ..
    ..
    ..
    <FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION="outputFile.asp" target="_blank">
    <p align="center"><font face="Verdana" size="2">
    File : <INPUT TYPE="file" NAME="blob">


    <INPUT TYPE="submit" NAME="Enter" value="INVIA" align="middle">
    </font>
    </FORM>

    2- upload.asp
    <%Sub BuildUploadRequest(RequestBin)
    PosBeg = 1
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    boundaryPos = InstrB(1,RequestBin,boundary)
    Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
    Dim UploadControl
    Set UploadControl = CreateObject("Scripting.Dictionary")
    Pos = InstrB(BoundaryPos,RequestBin,getByteString("Conte nt-Disposition"))
    Pos = InstrB(Pos,RequestBin,getByteString("name="))
    PosBeg = Pos+6
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
    Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filen ame="))
    PosBound = InstrB(PosEnd,RequestBin,boundary)
    If PosFile<>0 AND (PosFile<PosBound) Then
    PosBeg = PosFile + 10
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
    FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    UploadControl.Add "FileName", FileName
    Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
    PosBeg = Pos+14
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    UploadControl.Add "ContentType",ContentType
    PosBeg = PosEnd+4
    PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
    Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    Else
    Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
    PosBeg = Pos+4
    PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
    Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
    End If
    UploadControl.Add "Value" , Value
    UploadRequest.Add name, UploadControl
    BoundaryPos=InstrB(BoundaryPos+LenB(boundary),Requ estBin,boundary)
    Loop
    End Sub
    Function getByteString(StringStr)
    For i = 1 to Len(StringStr)
    char = Mid(StringStr,i,1)
    getByteString = getByteString & chrB(AscB(char))
    Next
    End Function
    Function getString(StringBin)
    getString =""
    For intCount = 1 to LenB(StringBin)
    getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
    Next
    End Function%>

    3- outputFile.asp

    <%Response.Expires=0
    Response.Buffer = TRUE
    Response.Clear
    byteCount = Request.TotalBytes
    RequestBin = Request.BinaryRead(byteCount)
    Dim UploadRequest
    Set UploadRequest = CreateObject("Scripting.Dictionary")
    BuildUploadRequest RequestBin
    contentType = UploadRequest.Item("blob").Item("ContentType")
    filepathname = UploadRequest.Item("blob").Item("FileName")
    filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
    value = UploadRequest.Item("blob").Item("Value")

    'Create FileSytemObject Component
    Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

    'Create and Write to a File
    pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_I NFO")))-14
    Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Re quest.ServerVariables("PATH_INFO")),pathEnd) & filename)

    For i = 1 to LenB(value)
    MyFile.Write chr(AscB(MidB(value,i,1)))
    Next
    MyFile.Close%>

    <head>
    <title></title>
    </head>

    <body bgcolor="#FFCB8C">

    <p align="center"><font face="Verdana" size="2">
    File "<%=filename%>" ricevuto con successo</font>
    <p align="center"><font face="Verdana" size="2">torna</font></p>

    Questa procedura funziona benissimo su un sito, mentre in un'altro mi da questo errore:

    Microsoft VBScript runtime error '800a0005'
    Invalid procedure call or argument
    /public/outputFile.asp, line 23

    22 For i = 1 to LenB(value)
    23 MyFile.Write chr(AscB(MidB(value,i,1)))
    24 Next

    n.b. il file viene trasferito correttamente, ma non visualizza la pagina outputFile.asp

    preciso che il server è sempre aruba.


    Grazie a tutti anticipatamente

    Roberto

  2. #2
    Beh, visto che hai hosting con Aruba, ti consiglio di provare questo script per l'Upload!

    Si chiama Persits, ed è una libreria che Aruba mette già a disposizione sui server...e con due righe fai l'upload di file di qualunque dimensione, ed un sacco di altre cose utili...

    Ti mando a questa pagina del blog, dove trovi qualche post su come utilizzare la libreria(che è già installata, quindi devi solo inserire lo script...ed inizi a caricare)

    Usare la Libreria Persits su Aruba

    Se poi hai difficoltà a fare qualcosa, dimmi pure...

    Ciao e buona Domenica
    Ale

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.