Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585

    enctype multipart e javascript

    Ciao a Tutti,
    ho il seguente file upload.asp :

    Esso e' stato scaricato da internet e ho cambiato solo il path ove viene inviato il file


    <HTML>

    <HEAD>
    <%@ Language= VBScript %>
    <%
    '
    Server.ScriptTimeout = 100000
    Response.Expires=0
    Response.Buffer = TRUE
    Response.Clear
    '
    '
    byteCount = Request.TotalBytes
    RequestBin = Request.BinaryRead(byteCount)
    Set UploadRequest = CreateObject("Scripting.Dictionary")
    BuildUploadRequest RequestBin
    '
    '
    contentType = UploadRequest.Item("file").Item("ContentType")
    filepathname = UploadRequest.Item("file").Item("FileName")
    tipo = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"."))
    '
    If tipo <> "zip" AND tipo <> "pdf" then
    Response.Write ("Errore. Non è possibile caricare un file diverso da zip o pdf !!" & tipo)
    Response.End
    else
    If byteCount > 3009000 then
    '
    Response.Write ("Errore. File troppo grande !!")
    Response.End
    else
    '
    nomefile = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
    filename = nomefile
    value = UploadRequest.Item("file").Item("Value")
    '
    Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
    pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_I NFO")))-14
    '
    Set MyFile = ScriptObject.CreateTextFile(Server.mappath("archivio_deliver\") &"\"& filename) For i = 1 to LenB(value)
    MyFile.Write chr(AscB(MidB(value,i,1)))
    Next
    MyFile.Close
    End If
    End If
    %>
    </HEAD>

    <BODY>
    <%
    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
    %>
    <%
    Dim objFSO, objFile, objFolder
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(Server.MapPath("archivio_deliver" ))
    Response.Write "

    "
    For Each objFile in objFolder.Files
    Response.Write Left(objFile.Name, 4) & "
    "
    Next
    Set objFolder = Nothing
    Set objFSO = Nothing
    %>
    </BODY>

    </HTML>


    **************

    Ho poi la pagina file2.asp che funziona correttamente:

    <HTML>

    <HEAD>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>SSD</title>
    <Script Language="JavaScript">
    function notify(n) {
    if (n==6) {
    document.FrontPage_Form.submit(); }
    }
    </script>
    </HEAD>

    <BODY>
    <form method="POST" webbot-onSubmit language="JavaScript" name="FrontPage_Form" enctype="multipart/form-data" action="upload.asp">


    <input type="file" name="file" size="20">


    <input type="image" name="aesi_upload" id="aesi_upload" value="aesi_upload" onClick="notify(6)" src="images/plus2.jpg">

    </form>
    </BODY>

    </HTML>

    *******************

    Ho provato a cambiare la sintassi e mettere nella pagina file3.asp :

    <HTML>

    <HEAD>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>SSD</title>
    <Script Language="JavaScript">
    function notify(n) {
    if (n==6) {
    document.FrontPage_Form.enctype = "multipart/form-data"
    document.FrontPage_Form.action = "upload.asp"

    document.FrontPage_Form.submit(); }
    }
    </script>
    </HEAD>

    <BODY BACKGROUND="images/sfondo_drago.gif">
    <form method="POST" webbot-onSubmit language="JavaScript" name="FrontPage_Form">


    <input type="file" name="file" size="20">


    <input type="image" name="aesi_upload" id="aesi_upload" value="aesi_upload" onClick="notify(6)" src="images/plus2.jpg">

    </form>
    </BODY>

    </HTML>

    Ho il seguente errore:

    Error Type:
    Errore di run-time di Microsoft VBScript (0x800A0005)
    Chiamata di routine o argomento non validi: 'MidB'
    upload.asp, line 56


    Browser Type:
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)

    Page:
    POST 76 bytes to upload.asp

    POST Data:

    Errore di run-time di Microsoft VBScript error '800a000d'

    Tipo non corrispondente: 'Server.HTMLEncode'

    /iisHelp/common/500-100.asp, line 225


    Grazie mille in anticipo !!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    vorrei chiedere se e' possibile questo:

    nella mia pagina index.asp che contiene dei moduli di testo con cui aggiorno i campi del database,

    ho:

    <form method="POST" webbot-onSubmit language="JavaScript" name="FrontPage_Form2 " enctype="multipart/form-data " action="upload.asp">
    <input type="file" name="file" size="20">
    <input type="image" name="aesi_upload" id="aesi_upload" value="aesi_upload" onClick="document.FrontPage_Form2.submit();" src="images/plus2.jpg">
    </form>
    ...
    ....
    <form method="POST" webbot-onSubmit language="JavaScript" name="FrontPage_Form ">
    <input type="text" id="progetto_nome" name="progetto_nome" size="49" value="<%=objRS("Progetto_Nome")%>" /></td>

    Essendo 2 forms distinte funzionano benissimo, pero' vorrei che,
    cliccando sull' immagine plus2.jpg all' interno di FrontPage_Form ,
    venisse effettuato l' upload del file nell' altra form FrontPage_Form2 ...

    E' possibile ???

    Ho provato cosi':

    <form method="POST" webbot-onSubmit language="JavaScript" name="FrontPage_Form2 " enctype="multipart/form-data" action="upload.asp">
    <input type="file" name="file" size="20">
    </form>
    .........
    <form method="POST" webbot-onSubmit language="JavaScript" name="FrontPage_Form ">
    <input type="image" name="aesi_upload" id="aesi_upload" value="aesi_upload" onClick="document.FrontPage_Form2.submit();" src="images/plus2.jpg">
    .........
    E non succede niente

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Ho provato a tenere un unico form mettendo:

    <form name="FrontPage_Form" enctype="" action="" method="post">
    .....

    <input type="file" name="file" size="20">
    <input type="image" name="aesi_upload" id="aesi_upload" value="aesi_upload" onClick="this.form.enctype='multipart/form-data';this.form.action='upload.asp';this.form.subm it();" src="images/plus2.jpg"></td>

    .....

    mi continua a dare l' errore:

    Errore di run-time di Microsoft VBScript (0x800A0005)
    Chiamata di routine o argomento non validi: 'MidB'
    upload.asp, line 56


    Browser Type:
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)

    Page:
    POST 2618 bytes to upload.asp

    POST Data:
    error '80020009'
    Eccezione.

    /iisHelp/common/500-100.asp, line 223


    Devo forse usare un altro algoritmo di upload ??

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Volevo sapere se in questi casi l' unica via e' fare tanti forms separati,
    * uno di seguito all' altro,

    * e che quindi e' impossibile che all' interno di un form si possa creare una comunicazione ad un altro form

    * e che quindi se uno lavora all' interno di un form, chiamiamolo "form1", non puo' inserire un campo appartenente ad un altro fom, chiamiamolo "form2"...

    E' un peccato perche' se un cliente chiede di creare una pagina web con tanti modulini da aggiornare un DB, e in mezzo a questi modulini che uno compila, si vuole mettere l' UPLOAD di un file, questo NON si puo' fare per via dell' enctype multipart ....

    Chiederei, se possibile, conferma di questo ....

    GRAZIE !!!!

  5. #5
    mi sa che io ebbi un problema analogo e risolsi con piu form che apparivano/scomparivano col javascript.. perchè mi pare che se cambi l'enctype via javascript, non venga ben riconosciuto




    ps: per l'upload usa l'upload di Baol (googleggia)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Grazie per l' intervento !!!

    Ho visto nel forum e ho scaricato l' upload di Baol che fa riferimento sempre all' enctype multipart ...

    Ho deciso di tenere quindi i 2 forms distinti, uno di seguito all' altro ...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.