+ Rispondi al Thread
Pagina 2 di 3 primaprima 123 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 28

Discussione: [ASP]Form invio E-Mail con allegato

  1. #11
    L'avatar di FEFE
    FEFE non è in linea Scolaretto
    Post
    125
    Ciao master,
    il messaggio di errore e riferito al percorso che diviene non corretto, cioè:

    a viedeo, il codice
    codice:
    <% response.Write(request.QueryString("file"))%>
    mi restituisce tutto il percorso che in questo caso è:

    codice:
    C:\Documents and Settings\FEFE\Desktop\ok55.txt
    Naturalmente, il percorso dell'.AddAttachment è corretto, dato che il file si trova nella cartella "allegati", ma nella variabile request.Form("allegato") del codice

    codice:
    .AddAttachment server.MapPath(".") & "/allegati/" & request.Form("allegato")
    dovrebbe inserirsi non l'intero percorso ma solo il nome del file "ok55.txt"

    Non è valido il percorso: /allegati/C:\Documents and Settings\FEFE\Desktop\ok55.txt

    ma dovrebbe essere solo: /allegati/ok55.txt

    Praticamente io voglio estrapolare solo il nome del file e non l'intero percorso dove risiede nel computer dell'utente!!!

    Non so se sono stato chiaro.
    Per piacere aiutami Master.
    Ciao ciao.
    Ultima modifica di FEFE; 06-02-2007 01:28 

  2. #12
    Post
    4,741
    Blogs
    12
    Ciao FEFE,
    studia bene queste righe di codice, testale anche in locale e successivamente modifica il tuo sistema di upload:

    codice:
    <%
    Dim myString
    Dim myArray
    
    myString = "C:\MiaCartella\MiaSottoCartella\MiaSottoSottoCartella\MioFile.txt"
    
    myArray = split(myString, "\")
    
    'Recupero il nome del file
    response.write MyArray(UBound(MyArray))
    %>
    A presto,
    Giuseppe Leone

    P.S.
    Da quanto tempo che non scrivevo in ASP

  3. #13
    L'avatar di FEFE
    FEFE non è in linea Scolaretto
    Post
    125
    Ciao Master,
    scusa se mi faccio entire solo ora, ma volevo risolvere il problema prima di postare nuovmente!
    Dopo tanto finalmente ci sono riuscito, funziona tutto alla grande, onestamente non ho utilizzato il tuo metodo, dando un occhiata su un manuale che mi hanno prestato, sono riuscito a venirne a capo.
    Posto qui il codice per fartelo vedere (alla fine quando funzionerà tutto posto tutti i codice delle pagine dato che possono essere d'aiuto ad altri utenti)

    codice:
    <%
    'Questa variabile setta il percorso di dove effettuare l'upolad
    
    percorso = "file/"
    
    ByteRicevuti = Request.TotalBytes
    
    
    if ByteRicevuti > 0 then
       	DatiRicevuti = Request.BinaryRead(ByteRicevuti)
    	For i = 1 To lenB(DatiRicevuti)
    		FileBinario = FileBinario & chr(ascB(midB(DatiRicevuti,i,1)))
        Next
    	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)
    
    		
    
    		' Qui recupero il file da uploadare (se presente) e lo scrivo
    		' sul server
    		if instr(Intestazione,"file1") > 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 = NomeFile
        			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
    	next
    
    
    If Upload1 = true then
    	Response.Write "<br>La dimensione del file che hai uploadato è di " & DimensioneFile1*0.001 & "kb"
    	Response.Write "<br>Il nome del file è " & NomeFile
    End If
    
    
    End if
    %>
    Ora c'è un picolo problemino.
    Purtroppo non riesco:
    1) a bloccare l'avanzamento se non si allega nessun file;
    2) a limitare l'upload a solo immagini (per lo più .tif).

    Per il primo problema avevo pensato di sfruttare la stringa Request.TotalBytes dato che ci permette di conteggiare il numero totale dei byte che sono stati inviati tramite il form.....purtroppo non serve a niente giustamente dato che anche se non ci si allega file, di bytes ne vengono scambiati un bel pò
    L'unica soluzione è controllare la variabile DimensioneFile1.........purtroppo però non riesco a trovare una soluzione per gestirla tale da risolvermi il problema!!
    Per il secondo problema dovrei utilizzare la variabile Content-Type ..............anche qui, non riesco ancora a saperla utilizzare.

    Potresti gentilmente darmi una mano???
    Grazie mille.
    Ciao ciao.

  4. #14
    Post
    4,741
    Blogs
    12
    Beh,
    per il primo problema, la risoluzione e' abbastanza banale, se la lunghezza del valore passato e' uguale a 0, non e' stato specificato alcun file e quindi si salta la fase dell' upload ( if ... ); Per il secondo punto, estrapoli l'estensione del file con il codice che ho proposto nel messaggio precedente ed effettui un nuovo controllo: if "miaEstensione" <> "tif" then, non esegui l'upload o restituisci un messagio di errore, altrimenti procedi pure con l'upload.

    Tutto molto semplice,
    a presto,
    Giuseppe Leone

  5. #15
    L'avatar di FEFE
    FEFE non è in linea Scolaretto
    Post
    125
    Ciao Master,
    lo so che ti chiedo molto, anzi moltissimo, ma ancora non sono riuscito a mettere in pratica il tuo consiglio sulla risoluzione dei miei due problemi........potresti postarmi qualche codice già funzionante????
    Confido nella tua disponibilità!
    Ciao e grazie.

  6. #16
    L'avatar di FEFE
    FEFE non è in linea Scolaretto
    Post
    125
    Ciao Master,
    il primo problema sono riuscito a risolverlo.
    Ho provato prima la tua soluzione, cioè facendo il controllo sul valore passato, ma mi sono reso conto che non è perfetto....ti spiego meglio:
    se un utente scrivesse sul campo file da allegare c:/documenti/123 il tuo controllo non bloccherebbe l'utente dato che sul server viene caricaro un file "123" che non significa niente ma che comunque passa un valore diverso da 0.
    Ho optato per fare un controo sulla dimensione del file dato che nel caso su menzionato il file "123" pur caricato avrebbe però un valore pari a 0 e quindi mi blocca l'utente.
    Questo è il codice"

    codice:
    if dimensionefile1=0 then
    response.redirect("controllo.asp")
    end if
    Per quanto riguarda il secondo problema non riesco proprio ad utilizzare la tua stringa per estrapolare l'estensione dl file caricato.
    Per piacere potrsti darmi una mano???
    GRazie mille.
    Ciao ciao

  7. #17
    Post
    4,741
    Blogs
    12
    Ciao FEFE,
    riguardo il secondo controllo, dovrai aspettare lunedi'.
    Come ho gia' introdotto, non scrivo in ASP da tempo ormai, solo a lavoro ho una postazione con un IIS in grado di far girare le ASP.

    A presto,
    Giuseppe Leone

  8. #18
    L'avatar di FEFE
    FEFE non è in linea Scolaretto
    Post
    125
    Ok, aspetto lunedì un tuo aiuto.
    Ti ringrazio molto per la tua disponibilità.
    Ciao

  9. #19
    Post
    4,741
    Blogs
    12
    Con un leggero di ritardo ma eccomi il codice che ti avevo promesso:

    codice:
    <%
    ' #### FUNZIONE VERIFICA ESTENSIONE ####
    ' file = percorso del file da controllare
    ' ext = estensione consentita
    function verificaEstensione(file, ext)
    	Dim myArray
    	Dim myTempExt
    	
    	myArray = split(file, "\")
    	myTempExt = split(myArray(UBound(myArray)), ".")
    	
    	// Controllo dell'estensione
    	if myTempExt(UBound(myTempExt)) = ext then
    		verificaEstensione = true
    	else
    		verificaEstensione = false
    	end if
    end function
    
    ' ESEMPIO DI FUNZIONAMENTO
    Dim myString
    myString = "C:\MiaCartella\MiaSottoCartella\MiaSottoSottoCartella\MioFile.txt"
    
    if verificaEstensione(myString, "txt") = true then
    	response.write "Estensione del file corretta"
    else
    	response.write "Estensione non corretta"
    end if
    
    %>
    E' presente sia la funzione che il codice di esempio.
    Ho cercato di commentare lo stretto necessario per renderti la *vita* piu' facile. Evidenziato trovi l'estensione consentita

    A presto,
    Giuseppe Leone

  10. #20
    L'avatar di FEFE
    FEFE non è in linea Scolaretto
    Post
    125
    Innanzitutto grazie mille per la tua disponibilità e per aver mantenuto la promessa (non avevo dubbi in tal proposito).
    Ho provato il uo codice ma purtroppo mi dà sempre come risposta "estensione non corretta" anche se il file è quello giusto.
    Sicuramente (nonostante mi ha scritto tutto ciò che AVREBBE DOVUTO farmi mettere in pratica il codice) ho sbagliato qualcosa.
    Ti posto il codice modificato da me in modo tale da spiegarmi gentilmente in cosa sto sbagliando

    codice:
    <%
    ' #### FUNZIONE VERIFICA ESTENSIONE ####
    ' file = file/
    ' ext = tif
    function verificaEstensione(file, ext)
    	Dim myArray
    	Dim myTempExt
    	
    	myArray = split(file, "\")
    	myTempExt = split(myArray(UBound(myArray)), ".")
    	
    	// Controllo dell'estensione
    	if myTempExt(UBound(myTempExt)) = ext then
    		verificaEstensione = true
    	else
    		verificaEstensione = false
    	end if
    end function
    
    ' ESEMPIO DI FUNZIONAMENTO
    Dim myString
    myString = "file/"
    
    if verificaEstensione(myString, "tif") = true then
    	response.write "Estensione del file corretta"
    else
    	response.write "Estensione non corretta"
    end if
    
    %>
    Il tuo codice l'ho messo prima del mio che effettua l'upload.
    L'unica estensione consentita è immagini TIFF e la cartella in cui vengono caricate le immagini dagli utenti si chiama file ed è situata dentro la cartella in cui c'è la pagina upload.asp

    Ciao ciao

+ Rispondi al Thread
Pagina 2 di 3 primaprima 123 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi