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

    Upload e Modifica campi

    Ciao ho un problema in questo file di Upload e modifica dei Dati.
    il tutto funziona correttamente, ma vorrei avere un aiuto sulla parte di Upload.
    Praticamente vengono compilati i campi del form, allegando un file e cliccando sul Button i dati vengono modificati.
    L'unica cosa e che ogni volta che clicco sul button, se io non allego nulla per esempio mi stampa un file vuoto.
    Vorrei mettere un controllo, che se vede che è gia presente un file non mi esegua la modifica mettendomi un allegato vuoto

    codice:
    <head>
    	<title>INSERISCI DOCUMENTO</title>
    	<link href="stile.css" rel="stylesheet" type="text/css">
    	<script type="text/javascript" src="js/jquery.js"></script>
    	<script type="text/javascript" src="js/interface.js"></script>
    	<link href="stylemenu.css" rel="stylesheet" type="text/css" />	
        
    </head>
    
    
    
    
    <%
    
    Dim oUpload
    Dim oFile 
    Dim sFileName
    Dim oFSO
    Dim sPath        'percorso del file
    Dim sNewData
    Dim nLength
    Dim bytBinaryData
    Dim Tipo         'campo TIPOLOGIA del form
    Dim Destinatario 
    Dim Mittente     'campo PERSONA del form
    
    Const nForReading = 1
    Const nForWriting = 2
    Const nForAppending = 8
    
    Dim anno, mese, giorno, ore, minuti, secondi
    Dim Differenza3
    
    
       ' Funzione DataInNum a cui passo una data
       ' Preleva dalla data l'anno
       anno = Year(date)
       ' Preleva dalla data il mese 
       mese = Month(date)
       ' Preleva dalla data il giorno 
       giorno = Day(date)
       ' Concatena i valori in un unico numero
       solodata = giorno & "/" & mese & "/" & anno
    
       data = giorno & mese & anno
       
       ore = hour(time)
       minuti = minute(time)
       secondi = second(time)
       
       Orax = ore & minuti & secondi
    
    
    ' grab the uploaded file data
    Set oUpload = New clsUpload1
    
    Tipo = oUpload.ValueOf(1)' il numero contrassegnato nella parentesi sta a indicare il numero del campo (in quest caso corrisponde al primo campo) '
    Data_ricevimento = oUpload.ValueOf(2)
    Mittente = oUpload.ValueOf(3)
    Ritirato_da = oUpload.ValueOf(5)
    Data_ritiro = oUpload.ValueOf(6)
    Destinatario = oUpload.ValueOf(4)
    Priorita = oUpload.ValueOf(7)
    Mail = oUpload.ValueOf(8)
    Note = oUpload.ValueOf(9)
    Allegato = oUpload.ValueOf(10)
    StatoPosta = oUpload.ValueOf(11)
    
    
    Set oFile = oUpload("File1")
    
    ' parse the file name
    
    sFileName = oFile.FileName
    If Not InStr(sFileName, "\") = 0 Then
    	sFileName = Mid(sFileName, InStrRev(sFileName, "\") + 1)
    End If
    
    ' Convert the binary data to Ascii
    bytBinaryData = oFile.BinaryData
    nLength = LenB(bytBinaryData)
    For nIndex = 1 To nLength
    	sNewData = sNewData & Chr(AscB(MidB(bytBinaryData, nIndex, 1)))
    Next
    
    ' Salviamo Il Documento nella Cartella Allegati e scriviamo ORA E DATA COME NOME DEL FILE
    sPath = Server.MapPath("MODIFICATI") & "/"
    Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
    	sFileName = data & Orax & "-" & sFileName
    	sFileName = replace(sFileName, " ", "_")
    oFSO.OpenTextFile(sPath & sFileName, nForWriting, True).Write sNewData
    Set oFSO = Nothing
    
    Set oFile = Nothing
    Set oUpload = Nothing
    
    dataP =  Data_ricevimento
    
    dim conn, rs, rs2, rs4, rs5, sql
    
    ' --- costruzione stringa di connessione al db ---
    	Set Conn = Server.CreateObject("ADODB.Connection")
    	Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" &_
    	"DBQ="& Server.MapPath("Posta.mdb")
    
    
    ID = session("ID")
    
    'connessione al database
    	Set Conn = Server.CreateObject("ADODB.Connection")
    	Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" &_
    	"DBQ="& Server.MapPath("Posta.mdb")
    
    sql = "SELECT * FROM T_Posta WHERE ID = " & ID
    
    
    set rs = CreateObject("ADODB.Recordset")
    
    rs.Open sql, conn, 1, 3
    
    rs("Tipo") = Tipo
    rs("Data_ricevimento") = Data_ricevimento
    rs("Mittente") = Mittente
    rs("Destinatario") = Destinatario
    rs("Ritirato_da") = Ritirato_da
    rs("Data_ritiro") = Data_ritiro
    rs("Priorita") = Priorita
    rs("Mail") = Mail
    rs("Note") = Note
    rs("Allegato") = sFileName
    rs("StatoPosta") = StatoPosta
    rs.update
    
    
    
    rs.close 
    set rs = nothing
    
    conn.close
    set conn = nothing
    
    
    'response.redirect "visualizza.asp"
    %>
    </html>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Passa al form un campo hidden con il valore dell'allegato eventualmente già presente (avrà valore vuoto se l'allegato non c'è)
    In questo modo se il file non lo carichi, il valore da assegnare al campo sarà quello vecchio.
    In questo modo non devi modificare la query, che rimane sempre la stessa, ma i valori che passi.

    Roby

  3. #3
    grazie per la risposta....

    se ti posto il form ... mi dai una mano a scriverlo ?

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    E' solo un campo

    codice:
    <input type="hidden" name="allegato_old" value="<%=allegato">
    Dove la variabile "allegato" contiene il campo della tabella.

    Roby

  5. #5
    il campo come ho nel form è cosi :

    <td><input name="Allegato" type="text" value="<%=rs("Allegato")%>"></input>


    devo mettere :

    <td><input type="hidden" name="allegato_old" value="<%=rs("Allegato")%>"</input>
    o cosi ?

    <td><input type="hidden" name="allegato_old" value="<%=Allegato"></input>

    e poi come lo passo il valore dall altra parte ?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Veramente già lo passi....

    Allegato = oUpload.ValueOf(10)

    Il punto è che lo devi controntare con il file che carichi, se lo carichi.
    Prima della query:

    if sFileName <> "" then Allegato = sFileName

    e nella query:

    ....
    ....
    rs("Allegato") = Allegato
    ....

    Roby

  7. #7
    Questo IF lo prevede l'END if di chiusura ...

    perche se lo metto da errore che prevede l'istruzione.

    se non lo metto gira ma non succede nulla...

    continua a uplodare continuamente il file

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Io non lo vedo quel controllo nel tuo script.

    Roby

  9. #9
    io ho fatto cosi :

    succede che ....

    se io uplodo un file mi scrive la data e l'ora corrente - il nome del file uploadato.
    se invece non uplodo un file mi inserisce la data e l' ora corrente - vuoto perche non ho nessun file.

    io vorrei che quando non uplodo nulla rimanga in memoria il file di prima perche magari voglio solo modificare i campi e non l allegato

    codice:
    <head>
    	<title>INSERISCI DOCUMENTO</title>
    	<link href="stile.css" rel="stylesheet" type="text/css">
    	<script type="text/javascript" src="js/jquery.js"></script>
    	<script type="text/javascript" src="js/interface.js"></script>
    	<link href="stylemenu.css" rel="stylesheet" type="text/css" />	
        
    </head>
    
    
    
    
    <%
    
    Dim oUpload
    Dim oFile 
    Dim sFileName
    Dim oFSO
    Dim sPath        'percorso del file
    Dim sNewData
    Dim nLength
    Dim bytBinaryData
    Dim Tipo         'campo TIPOLOGIA del form
    Dim Destinatario 
    Dim Mittente     'campo PERSONA del form
    
    Const nForReading = 1
    Const nForWriting = 2
    Const nForAppending = 8
    
    Dim anno, mese, giorno, ore, minuti, secondi
    Dim Differenza3
    
    
       ' Funzione DataInNum a cui passo una data
       ' Preleva dalla data l'anno
       anno = Year(date)
       ' Preleva dalla data il mese 
       mese = Month(date)
       ' Preleva dalla data il giorno 
       giorno = Day(date)
       ' Concatena i valori in un unico numero
       solodata = giorno & "/" & mese & "/" & anno
    
       data = giorno & mese & anno
       
       ore = hour(time)
       minuti = minute(time)
       secondi = second(time)
       
       Orax = ore & minuti & secondi
    
    
    ' grab the uploaded file data
    Set oUpload = New clsUpload1
    
    Tipo = oUpload.ValueOf(1)' il numero contrassegnato nella parentesi sta a indicare il numero del campo (in quest caso corrisponde al primo campo) '
    Data_ricevimento = oUpload.ValueOf(2)
    Mittente = oUpload.ValueOf(3)
    Ritirato_da = oUpload.ValueOf(5)
    Data_ritiro = oUpload.ValueOf(6)
    Destinatario = oUpload.ValueOf(4)
    Priorita = oUpload.ValueOf(7)
    Mail = oUpload.ValueOf(8)
    Note = oUpload.ValueOf(9)
    Allegato = oUpload.ValueOf(10)
    StatoPosta = oUpload.ValueOf(11)
    
    
    Set oFile = oUpload("File1")
    
    ' parse the file name
    
    sFileName = oFile.FileName
    If Not InStr(sFileName, "\") = 0 Then
    	sFileName = Mid(sFileName, InStrRev(sFileName, "\") + 1)
    End If
    
    ' Convert the binary data to Ascii
    bytBinaryData = oFile.BinaryData
    nLength = LenB(bytBinaryData)
    For nIndex = 1 To nLength
    	sNewData = sNewData & Chr(AscB(MidB(bytBinaryData, nIndex, 1)))
    Next
    
    'response.Write(sFileName)
    'response.write ("
    ")
    
    'if LenB(bytBinaryData) = 1 then
    
    'response.write ("C")
    
    'else
    
    'response.write ("dkjcvdfhvkdfjv")
    
    
    ' Salviamo Il Documento nella Cartella Allegati e scriviamo ORA E DATA COME NOME DEL FILE
    sPath = Server.MapPath("MODIFICATI") & "/"
    Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
    	sFileName = data & Orax & "-" & sFileName
    	sFileName = replace(sFileName, " ", "_")
    oFSO.OpenTextFile(sPath & sFileName, nForWriting, True).Write sNewData
    Set oFSO = Nothing
    
    Set oFile = Nothing
    Set oUpload = Nothing
    
    'end if
    
    dataP =  Data_ricevimento
    
    dim conn, rs, rs2, rs4, rs5, sql
    
    ID = session("ID")
    
    'connessione al database
    	Set Conn = Server.CreateObject("ADODB.Connection")
    	Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" &_
    	"DBQ="& Server.MapPath("Posta.mdb")
    	
    if sFileName <> "" then Allegato = sFileName	 
    
    sql = "SELECT * FROM T_Posta WHERE ID = " & ID
    
    set rs = CreateObject("ADODB.Recordset")
    
    rs.Open sql, conn, 1, 3
    
    
    rs("Tipo") = Tipo
    rs("Data_ricevimento") = Data_ricevimento
    rs("Mittente") = Mittente
    rs("Destinatario") = Destinatario
    rs("Ritirato_da") = Ritirato_da
    rs("Data_ritiro") = Data_ritiro
    rs("Priorita") = Priorita
    rs("Mail") = Mail
    rs("Note") = Note
    rs("Allegato") = Allegato
    rs("StatoPosta") = StatoPosta
    
    rs.update
    
    conn.close
    set conn = nothing
    
    %>
    </html>

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi fare debug.
    Fatti stampare la variabile Allegato prima del processo di upload e dopo...
    Verifica anche se il form nel campo hidden riporta il nome correttamente del file già presente.

    Roby

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.