Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Upload Baol: percorso dal Form!

    Uso l'Upload di Baol, tutto a posto.... TRANNE!....
    Uso questo codice
    codice:
    <%
    Dim oUpload
    Set oUpload= new cUpload
    With oUpload
    .SetDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("\database\data001.mdb"),"SELECT Top 1 * FROM risorse"
    .EnabledAspUpload	= False
    .EnabledImageSize	= False
    .EnabledLog 		= False
    .AutoRename 		= False
    .Overwrite			= True
    .SetPath "../public/" & oUpload.Form("categoria") 
    .Load
    .MoveFirst
    if .EOF then
    	NumFiles = .Count()
    	Response.write "0 Files caricati su " & NumFiles & " : controlla le dimensioni e il tipo di file."
    else
    	.Database.Open()
    	While Not .EOF
    			.Save
    			'Inserimento dei valori
    			.Database.Fields("versione") = .Form("nome")
    			.Database.Fields("tipologia") = .Form("categoria")
    			.Database.Fields("file") = .GetFileName
    			'Inserimento
    			.Database.AddNew()
    			response.Write "il file " & .GetFileName &" è stato salvato"
    	.MoveNext
    	Wend
    end if
    End With
    Set oUpload = Nothing
    %>
    Come vedete dalla riga in rosso, ho necessità che in base alla categoria i files vengano messi in 4 cartelle diverse (nel form il campo CATEGORIA è una tendina a 4 voci e le cartelle le ho già create). Eppure niente da fare, continua a mettermi i files dentro PUBLIC. L'aggiornamento del database lo fa correttamente!!!!
    BAOOOOOOOL, AIUTOOOOOOO!
    :master:
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  2. #2
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Sei in hosting o in server locale?
    Quali sono i nomi di queste cartelle?
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  3. #3
    Per ora sono in locale. I nomi con cui sto provando sono "amici","colleghi","famiglia".
    Nel database mi scrive correttamente nel record ma le cartelle che ho creato dentro public non le fila proprio!!!!
    Mette tutto dentro public.....
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  4. #4
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    codice:
    .SetPath "../public/amici/" & oUpload.Form("categoria") 
    
    .SetPath "../public/colleghi/" & oUpload.Form("categoria") 
    
    .SetPath "../public/famiglia/" & oUpload.Form("categoria")
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  5. #5
    Mmmm,mi sa che non mi sono spiegata.......


    Ricominciamo da capo:
    Nella cartella PUBLIC io ho 3 sottocartelle: AMICI, COLLEGHI, FAMIGLIA.
    Quando compilo il form seleziono dalla tendina "categoria" uno di questi 3 valori.

    Nel momento in cui vado a fare l'upload del file e del database, io vorrei che il file venisse sistemato in una di queste cartelle, a seconda di come l'utente ha compilato il Form.
    Quindi ho usato

    codice:
    .SetPath "../public/" & oUpload.Form("categoria")
    In modo da rendere il Path dinamico e far cambiare la cartella alla variazione del valore nella select "categoria".
    Il problema è che, pur aggiornando correttamente il db nel campo "categoria" (scrive correttamente il valore della select), i files vengono tutti uploadati nella cartella PUBLIC e non nelle sottocartelle, come se ignorasse completamente la seconda parte della stringa .SethPath (...& oUpload.Form("categoria")).

    Posso aggiungere anche di aver fatto un'altra prova (andata male), cioè questa:

    codice:
    if oUpload.Form("categoria") = "amici" then
    .SetPath "../public/amici"
    elseif oUpload.Form("categoria") = "colleghi" then
    .SetPath "../public/colleghi"
    elseif oUpload.Form("categoria") = "famiglia" then
    .SetPath "../public/famiglia"
    else
    .SetPath "../public" 
    end if
    In questo caso, se tolgo l'ultimo ELSE (quello in rosso) il db viene aggiornato ma non scrive nessun file. Se invece lascio l'ultima condizione, mette tutto in PUBLIC, come se nessuna delle precedenti venisse soddisfatta.
    Questo il codice della select nel Form:

    codice:
    <select name="categoria" id="categoria">		
    <option value="amici">amici</option>
    <option value="colleghi">colleghi</option>
    <option value="famiglia">famiglia</option>
    </select>
    Mi sembra una normale select, no???
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  6. #6
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Prova a recuperare il valore della select prima del caricamento del file e verificare che si valorizzi correttamente, cioè:


    codice:
    categoria = oUpload.Form("categoria") 
    response.write categoria : response.end
    Se non lo fa il problema è proprio la select del form.
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  7. #7
    Purtroppo il problema non è la select.
    Ho già provato a vedere come valorizzava il campo.
    Avevo modificato questa stringa
    codice:
    response.Write "il file " & .GetFileName &" è stato salvato"
    in questo modo
    codice:
    response.Write "il file " & .GetFileName &" è stato salvato in " & oUpload.Form("categoria")
    e il valore restituito era corretto anche se il File veniva salvato in public.
    Secondo me è proprio un problema di sintassi su quel .SetPath........

    Nessuno può dare una voce a BAOL e illustrare le mie difficoltà?
    Credo dovrebbe esserci una soluzione piuttosto semplice!!!!
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  8. #8
    Sono andata io a rompere le scatole a BAOL......
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  9. #9
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Non ho letto tutto il post...
    Mi pare di capire che vuoi cambiare directory a seconda della select.
    Per ottenere i valori inviati prima devi lanciare il metodo oUpload.Load.
    Quindi
    codice:
    .Load 'carica i valori inviati (sia files che form)
    .SetPath "../public/" & oUpload.Form("categoria") 'Imposta il percorso

  10. #10
    MITIIIIIIIIIIIIIIICOOOOOOOOOOOOOOOOOOOOOOO!!!!!!
    Funzionaaaaaaaaaaaaaaaaaaaaaaaaaa!!!!

    Grazie grazie grazie, in pratica ho solo spostato la stringa .Load sopra la riga con il .setPath.
    Questo BAOL è proprio un pozzo di conoscenza!

    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

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.