Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Upload con rinomino dei file

    ho la seguente funzione per l'upload del file come posso inserire nel form un qualsiasi file e fare in modo che venga uplodato con un nome ben specifico che gli creo io???

    Response.Expires=0
    Response.Buffer = TRUE
    Response.Clear

    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")
    'Get an object name
    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

    byteCount = Request.TotalBytes

    RequestBin = Request.BinaryRead(byteCount)
    Dim UploadRequest
    Set UploadRequest = CreateObject("Scripting.Dictionary")

    BuildUploadRequest RequestBin


    folder=UploadRequest.Item("folder").Item("Value")




    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
    desc= Server.mappath(folder)


    Set MyFile = ScriptObject.CreateTextFile(Server.mappath(folder) &"\"&filename)
    'Set MyFile = ScriptObject.CreateTextFile(folder &"\"&filename)


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

    MyFile.Close

  2. #2
    Io uso un altro metodo di upload e rinomino sempre il file per renderlo facilmente "legabile" al record cui appartiene.
    Se vuoi ti posto il sistema.

  3. #3
    Ciao scusate se mi intrometto senza dare una risposta al problema...

    se posti il tuo metodo potrebbe esser utile anche a me grazie
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  4. #4
    codice:
    Dim percorso
    percorso = "images/"
    
    ByteRicevuti = Request.TotalBytes
    
    if ByteRicevuti > 0 then
    	DatiRicevuti = Request.BinaryRead(ByteRicevuti)
    	FileBinario = RSBinaryToString(DatiRicevuti)
    	FirmaFile = left(FileBinario,instr(FileBinario,"" & vbCrLf)-1)
    	ArrPezzi = split(FileBinario,FirmaFile)
    
    	for item = 1 to ubound(ArrPezzi)-1
    		Inizio = instr(ArrPezzi(item),"" & vbCrLf & "" & vbCrLf)
    		Intestazione = left(ArrPezzi(item),Inizio-1)
    		Inizio = Inizio + len("" & vbCrLf) + len("" & vbCrLf)
    	    	ContenutoFile = mid(ArrPezzi(item),Inizio,len(ArrPezzi(item))-Inizio-1)
    
    		' Recupero i campi se sono compilati
    		if instr(Intestazione,"data_ins") > 0 then
    			data_ins = ContenutoFile
    		end if
    		
    		if instr(Intestazione,"nr_rivista") > 0 then
    			nr_rivista = ContenutoFile
    		end if
    		
    		if instr(Intestazione,"sezione") > 0 then
    			sezione = ContenutoFile
    		end if
    		
    		if instr(Intestazione,"titolo") > 0 then
    			titolo = ContenutoFile
    			titolo	= replace(titolo, "'","''")
    		end if
    		
    		if instr(Intestazione,"sottotit") > 0 then
    			sottotit = ContenutoFile
    			sottotit = replace(sottotit, "'","''")
    		end if
    		
    		if instr(Intestazione,"testo") > 0 then
    			testo = ContenutoFile
    			testo = replace(testo, "'","''")
    		end if
    		
    		if instr(Intestazione,"autore") > 0 then
    			autore = ContenutoFile
    			autore = replace(autore, "'", "''")
    		end if
    		
    		if instr(Intestazione,"status") > 0 then
    			status = ContenutoFile
    		end if
    		
    		
    		' Qui recupero il file da uploadare (se presente) e lo scrivo
    		' sul server
    		
    		'FILE 1
    		
    		if instr(Intestazione,"miniatura") > 0 then
    		    i = instr(Intestazione,"filename=")
    			j = instr(i + 10,Intestazione,chr(34))
    			NomeUpload = mid(Intestazione,i + 10,j-i-10)
    			i = instrRev(NomeUpload,"\")
    			if i<>0 then
        		    NomeFile = mid(NomeUpload,i + 1)
        		else
        			NomeFile = NomeUpload
        		end if
          		if i<>0 then
    				Set FSO = CreateObject("Scripting.FileSystemObject")
    				Upload1 = True
    				DimensioneFile1 = len(ContenutoFile)
    				EstensioneFile1 = right ContenutoFile,3)
    				NomeFile1 =  il_nome_che_vuoi_tu 
        			Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile1), True, False)
        			textStream.Write ContenutoFile
        			textStream.Close
        			Set textStream = Nothing
    	   			Set FSO = Nothing
        	   end if
    		end if
    Il sistema è prelevato da freeasp.html.it, adattato alle mie esigenze (quindi con rinomno file, ecc...).
    Lo stesso script funziona anche se hai più file da uploaddare, basta duplicare lo script, che estraei il file da uploaddare (ma in questo caso bisgna fare un include nella pagina con un file di funzioni).

  5. #5
    ma com'è fatto il form?? non ho capito come recuperi i campi del form...posteresti anche l'altra pagina del form?

  6. #6
    Grazie, mi serviva proprio per questo...lo avevo trovato una volta ed ora non lo trovavo più

    Grazie
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  7. #7
    Originariamente inviato da F10ry_ke_deve_imp
    ma com'è fatto il form?? non ho capito come recuperi i campi del form...posteresti anche l'altra pagina del form?
    Un normalissimo form per invio dati e file.

    Qui recuperi i campi, basta che duplichi il controllo per tutti i campi del form:

    codice:
    if instr(Intestazione,"data_ins") > 0 then
    data_ins = ContenutoFile
    end if

  8. #8
    ho aggiunto un next
    for item = 1 to ubound(ArrPezzi)-1
    Inizio = instr(ArrPezzi(item),"" & vbCrLf & "" & vbCrLf)
    Intestazione = left(ArrPezzi(item),Inizio-1)
    Inizio = Inizio + len("" & vbCrLf) + len("" & vbCrLf)
    ContenutoFile = mid(ArrPezzi(item),Inizio,len(ArrPezzi(item))-Inizio-1)
    next

    e un altro end if alla fine di tutto
    mi manca la funzione RSBinaryToString
    potresti inviarla??
    Grazie

  9. #9
    ho provato a farmi stampare il recupero dei campi che per me sono degli hidden ma risultano tutti vuoti

    if instr(Intestazione,"nome") > 0 then
    folder = ContenutoFile
    end if

    if instr(Intestazione,"id_offerta") > 0 then
    id_offerta = ContenutoFile
    end if

    if instr(Intestazione,"nomefile") > 0 then
    nomefile_nuovo = ContenutoFile
    end if

    response.write folder
    response.end

  10. #10
    codice:
    if instr(Intestazione,"nome") > 0 then 
    nome  = ContenutoFile 
    end if 
    
    if instr(Intestazione,"id_offerta") > 0 then 
    id_offerta = ContenutoFile 
    end if 
    
    if instr(Intestazione,"nomefile") > 0 then 
    nomefile  = ContenutoFile 
    end if
    Non puoi cambiare il nome della variabile.

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.