Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396

    Baol: Upload semplice, recuperare nomefile

    Ciao a tutti ragazzi,

    sto utilizzando l'Upload di Baol per caricare i file nel server. Funziona tutto a perfezione, l'unica cosa che mi servirebbe è poter prelevare il nome del file (es. foto.jpg), inserirlo in un campo nel db (es. nomefile), per poi andarlo a richiamare nella pagina di visualizzazione. Qualcuno può aiutarmi?? Grazie in anticipo!

    codice:
    <%
    Dim oUpload
    Set oUpload = new cUpload
    oUpload.SetPath "/public/"
    oUpload.UploadAndSave
    Set oUpload=Nothing
    %>

  2. #2
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Ho provato a fare questa aggiunta ma non inserisce il valore nel campo...

    codice:
    <%
    Dim oUpload
    Set oUpload = new cUpload
    	oUpload.SetPath "/public/"
    	oUpload.UploadAndSave
    Set oUpload=Nothing
    
    dim strCode
    strCode="innovatel"
    dim intVolta
    intVolta="0"
    
       
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("db.mdb")
    strConn=strConn & ";pwd=" & strCode
    Conn.Open strConn
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3
    
    
     
    strSQL = "INSERT INTO news (nomefile) values"&_
     "('"&nomefile&" ')" 
    
    
    
    
    response.write(strSQL)
    
    
    conn.execute(strSQL)
    conn.close
    Set conn=Nothing
    %>
    In alternativa:

    in html.it ho recuperato questo script che ho ampliato aggiungendo l'inserimento del campo "nomefile" nel db. Il fatto è che il valore viene inserito correttamente nel db ma il file non viene spostato nella cartella scelta. Aiutino??

    codice:
    %
    
    
    percorso = "/public/"
    
    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)
    
    		' Recupero i campi se sono compilati
    		if instr(Intestazione,"testo1") > 0 then
    			testo1 = ContenutoFile
    		end if
    
    		' Nel caso in cui fossero presenti piu campi basta duplicare
    		' la condizione cambiando unicamente il nome del campo
    		' es.
    		'if instr(Intestazione,"testo2") > 0 then
    		'	testo2 = ContenutoFile
    		'end if
    		
    		'if instr(Intestazione,"testo3") > 0 then
    		'	testo3 = ContenutoFile
    		'end if		
    
    		' 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
    
    		' Lo stesso discorso vale anche per i campi dei file :
    		' Nel caso in cui fossero presenti piu file basta duplicare
    		' la condizione cambiando unicamente il nome del campo
    		' es.
    
    		'if instr(Intestazione,"file2") > 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")
    		'		Upload2 = True
    		'		DimensioneFile2 = len(ContenutoFile)
    		'		EstensioneFile2 = right(ContenutoFile,3)
    		'		NomeFile2 = NomeFile
        	'		Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile2), True, False)
        	'		textStream.Write ContenutoFile
        	'		textStream.Close
        	'		Set textStream = Nothing
    	   	'		Set FSO = Nothing
        	'  end if
    		'end if
    
    		'if instr(Intestazione,"file3") > 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")
    		'		Upload3 = True
    		'		DimensioneFile3 = len(ContenutoFile)
    		'		EstensioneFile3 = right(ContenutoFile,3)
    		'		NomeFile3 = NomeFile
        	'		Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile3), True, False)
        	'		textStream.Write ContenutoFile
        	'		textStream.Close
        	'		Set textStream = Nothing
    	   	'		Set FSO = Nothing
        	'  end if
    		'end if
    	next
    
    ' Da qui in poi è possibile fare esegiure allo script altre operazioni
    ' inserire qui gli script aggiuntivi che si vogliono eseguire dopo l'upload
    ' Per esempio visualizzare quello che è stato inserito all'interno del
    ' compo testo
    
    Response.Write "Il valore immesso nella testo1 è " & testo1 & "
    "
    
    ' Utilizzando il sistema descritto sopra è possibile visualizzare campi
    ' testo aggiuntivi presenti nel form
    ' Response.Write "Il valore immesso nella testo2 è " & testo2 & "
    "
    ' Response.Write "Il valore immesso nella testo3 è " & testo3 & "
    "
    
    ' E la stessa cosa per i campi dove è stato eseguito l'upload dei file
    
    If Upload1 = true then
    	Response.Write "
    La dimensione del file che hai uploadato è di " & DimensioneFile1*0.001 & "kb"
    	Response.Write "
    Grazie di aver inviato il tuo file"
    End If
    
    'If Upload2 = true then
    '	Response.Write "
    La dimensione del file che hai uploadato è di " & DimensioneFile2*0.001 & "kb"
    '	Response.Write "
    Grazie di aver inviato il tuo file"
    'End If
    
    'If Upload3 = true then
    '	Response.Write "
    La dimensione del file che hai uploadato è di " & DimensioneFile3*0.001 & "kb"
    '	Response.Write "
    Grazie di aver inviato il tuo file"
    'End If
    
    End if
    
    
    
    dim strCode
    strCode="innovatel"
    dim intVolta
    intVolta="0"
    
       
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("db.mdb")
    strConn=strConn & ";pwd=" & strCode
    Conn.Open strConn
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3
    
    
     
    strSQL = "INSERT INTO news (nomefile) values"&_
     "('"&nomefile&" ')" 
    
    
    
    
    response.write(strSQL)
    
    
    conn.execute(strSQL)
    conn.close
    Set conn=Nothing
    %>
    
    
    
    %>

  3. #3
    Utente di HTML.it L'avatar di Iron83
    Registrato dal
    Jun 2008
    Messaggi
    396
    Ho risolto il problema staccando e ragionando più a fondo. Posto la soluzione per tutti quelli che vogliono caricare un file nel server, registrando il nome del file nel db per poi restituirlo in una pagina.

    codice:
    Dim oUpload
    Set oUpload= new cUpload
    With oUpload
    'La riga seguente impoosta la connessione al database e la tabella di inserimento dati
    'La connesione e la tabella verranno aperti con il metodo oUpload.Database.Open()
    .SetDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("/database/tabella.mdb"),"SELECT Top 1 * FROM tabella"
    .EnabledAspUpload	= False
    .EnabledImageSize	= False
    .EnabledLog 		 = False
    .AutoRename 		 = True
    .Overwrite			 = False
    .SetPath "/public/"
    .Load
    .MoveFirst
    if .EOF then
    	NumFiles = .Count()
    	Response.write "0 Files caricati su " & NumFiles &" : controlla le dimensioni e il ttipo di file."
    else
    	.Database.Open()
    	While Not .EOF
    			.Save
    			response.Write "il file " & .GetFileName &" è stato salvato 
    "
    			'Inserimento dei valori
    			.Database.Fields("nomefile") = .GetFileName
    			.Database.Fields("Percorso") = .GetCompletePathFile
    			'Inserimento
    			.Database.AddNew()
    	.MoveNext
    	Wend
    end if
    End With
    Set oUpload = Nothing
    %>
    .Database.Fields("nomefile") = .GetFileName è la parte che ci interessa cioè il nome del file. Anche se banale, posto la variabile per la visualizzazione dell'immagine nella pagina.

    [img]/public/<%=rs([/img]"/>

    Spero di essere stato utile

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.