Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327

    [ASP] Cancellare un file dal server

    Provo a cancellare un file immagine da una cartella sul server, in questo modo.

    codice:
    <%
    Dim canc,objFSO
    
        canc = Request.QueryString("canc")
        If canc = true Then
    		Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    
    		'Il file viene cancellato
    		objFSO.DeleteFile("../prodotti/=Rs.Fields("nome_file")")
    
    		Set objFSO = Nothing
    	End If
    %>
    La riga:
    codice:
    objFSO.DeleteFile("../prodotti/=Rs.Fields("nome_file")")
    mi sa che contiene un errore....ma non riesco a venirne a capo.
    Nel senso che io devo eliminare l'immagine prendendo il nome del file dal database...cosa devo cambiare?
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    objFSO.DeleteFile("../prodotti/"& Rs.Fields("nome_file"))
    Roby

  3. #3
    prova cosi:

    fs.DeleteFile Server.MapPath("../prodotti/" & Rs.Fields("nome_file"))

    o cosi

    fs.DeleteFile Server.MapPath("/prodotti/" & Rs.Fields("nome_file"))

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327
    ...non me lo cancella...quando faccio click sul collegamento sembra che faccia qlcsa...ma il file non lo cancella. Rimane a tutti gli effetti sul server.
    Provo a postare il codice...di sicuro sbaglio da qlc parte... VVoVe:

    codice:
    <%
    ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
        Dim sc, cn, Rs, quanti, pag, contatore
    
        ' DEFINISCO LA STRINGA DI CONNESSIONE
        sc = ""
        sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
        sc = sc & Server.MapPath("/db/database.mdb")
    
        ' IMPOSTO LA CONNESSIONE EDIL RECORDSET
        Set cn = Server.CreateObject("ADODB.Connection")
        Set Rs = Server.CreateObject("ADODB.Recordset")
    
        ' APRO LA CONNESSIONE COL DATABASE
        cn.Open sc
    
    	' DEFINISCO IL NUMERO DI RECORD DA VISUALIZZARE PER OGNI PAGINA
        quanti = 4
    
        ' RECUPERO IL NUMERO DI PAGINA CORRENTE
        ' E CONTROLLO CHE NON SIA INFERIORE A 1
        pag = Request.QueryString("pag")
        If IsNumeric(pag) = False Or pag < 1 Then pag = 1
    
        ' IMPOSTO UN CONTATORE
        contatore = 0
    %>
    
    <div align="center">
    	<table cellspacing="3" cellpadding="3" width="80%" border="1" bordercolor="#C0C0C0">
    		<tr>
    			<td bgcolor="#C0C0C0" width="30%">DATA</td>
    			<td bgcolor="#C0C0C0" width="30%">FILE</td>
    			<td bgcolor="#C0C0C0" width="30%">ANTEPRIMA</td>
    			<td bgcolor="#C0C0C0" width="30%">AZIONI</td>
    		</tr>
    <%
        ' APRO IL RECORDSET
        Rs.Open "Select * from UPLOAD order by ID Desc ;", cn, 1
        ' EFFETTUO MATERIALMENTE LA PAGINAZIONE
        Rs.PageSize = quanti
        Rs.AbsolutePage = pag
        ' ESEGUO IL CICLO
        While Rs.EOF = False And contatore < quanti
    %>
    <tr>
    	<td width="30%"><%=Rs.Fields("data")%></td>
    	<td width="30%"><%=Rs.Fields("titolo_file")%></td>
    	<td>[img]../prodotti/<%=Rs.Fields([/img]" width="70" height="70"></td>
    	<td align="center">Elimina</td>
    <%
            Rs.MoveNext
            ' INCREMENTO IL VALORE DEL CONTATORE
            contatore = contatore + 1
        Wend
    %>
    	</table>
    
    </div>
    
    <%
    Dim canc,objFSO
        canc = Request.QueryString("canc")
        If canc = true Then
    		Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    
    		'Il file viene cancellato
    		objFSO.DeleteFile Server.MapPath("/prodotti/" & Rs.Fields("nome_file"))
    
    		Set objFSO = Nothing
    	End If
    %>	
    <p align="center">
    <%If pag > 1 Then%>
        Indietro
    <%End If%>
    <%
        Dim x
        x = 1
        For x = 1 To Rs.PageCount
            If CInt(pag) <> x Then
    %>
                [<%=x%>]
    <%
            Else
    %>
                [<%=x%>]
    <%
            End If
        Next
    %>
    <%If Rs.EOF = False Then%>
        Avanti
    <%End If%>
    </p>
    
    <table align="center" cellspacing="3" cellpadding="3" width="" border="0">
    		<tr>
    			<td align="center">
    				<input type="button" value="Chiudi Finestra" onClick="Chiudi()">
    			</td>
    		</tr>
    </table>
    	
    </body>
    
    </html>
    <%
        ' UN PO DI PULIZIA...
        Rs.Close
        Set Rs = Nothing
        cn.Close
        Set cn = Nothing
    %>
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  5. #5
    codice:
    If cbool(canc) = true Then
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327
    ..scusa ma cosa vuol dire:
    codice:
    If cbool(canc) = true Then
    ..cos'è cbool..
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327
    codice:
    Server.MapPath() error 'ASP 0175 : 80004005'
    
    Caratteri non consentiti nel percorso
    
    /admin/UploadImmagini.asp, line 98
    
    Impossibile utilizzare i caratteri ".." nel parametro Path del metodo MapPath.
    ..tolgo i puntini... e...

    codice:
    Errore di run-time di Microsoft VBScript error '800a0035'
    
    Impossibile trovare il file
    
    /admin/UploadImmagini.asp, line 98
    forse sto diventando scemo.. :berto: :berto: :berto:
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  9. #9
    Impossibile trovare il file

    /admin/UploadImmagini.asp, line 98
    Mi pare ovvio, non lo trova !

    O non esiste il file in questione, o hai un'altra cartella che si chiama prodotti o non legge il nome del file.

    Devi andare per esclusione, prova a settare tutto il percorso escludendo il server.mappath es:

    objFSO.DeleteFile ("C:\inetpub\wwwroot\tuacartella/prodotti/"&(Rs("nome_file")))

  10. #10
    codice:
    <%
    ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
        Dim sc, cn, Rs, quanti, pag, contatore
    
        ' DEFINISCO LA STRINGA DI CONNESSIONE
        sc = ""
        sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
        sc = sc & Server.MapPath("/db/database.mdb")
    
        ' IMPOSTO LA CONNESSIONE EDIL RECORDSET
        Set cn = Server.CreateObject("ADODB.Connection")
        Set Rs = Server.CreateObject("ADODB.Recordset")
    
        ' APRO LA CONNESSIONE COL DATABASE
        cn.Open sc
    
    	' DEFINISCO IL NUMERO DI RECORD DA VISUALIZZARE PER OGNI PAGINA
        quanti = 4
    
        ' RECUPERO IL NUMERO DI PAGINA CORRENTE
        ' E CONTROLLO CHE NON SIA INFERIORE A 1
        pag = Request.QueryString("pag")
        If IsNumeric(pag) = False Or pag < 1 Then pag = 1
    
        ' IMPOSTO UN CONTATORE
        contatore = 0
    %>
    
    <div align="center">
    	<table cellspacing="3" cellpadding="3" width="80%" border="1" bordercolor="#C0C0C0">
    		<tr>
    			<td bgcolor="#C0C0C0" width="30%">DATA</td>
    			<td bgcolor="#C0C0C0" width="30%">FILE</td>
    			<td bgcolor="#C0C0C0" width="30%">ANTEPRIMA</td>
    			<td bgcolor="#C0C0C0" width="30%">AZIONI</td>
    		</tr>
    <%
        ' APRO IL RECORDSET
        Rs.Open "Select * from UPLOAD order by ID Desc ;", cn, 1
        ' EFFETTUO MATERIALMENTE LA PAGINAZIONE
        Rs.PageSize = quanti
        Rs.AbsolutePage = pag
        ' ESEGUO IL CICLO
        While Rs.EOF = False And contatore < quanti
    %>
    <tr>
    	<td width="30%"><%=Rs.Fields("data")%></td>
    	<td width="30%"><%=Rs.Fields("titolo_file")%></td>
    	<td>[img]../prodotti/<%=Rs.Fields([/img]" width="70" height="70"></td>
    	<td align="center">Elimina</td>
    <%
            Rs.MoveNext
            ' INCREMENTO IL VALORE DEL CONTATORE
            contatore = contatore + 1
        Wend
    %>
    	</table>
    
    </div>
    
    <%
    Dim canc,objFSO
        canc = Request.QueryString("canc")
        If canc = true Then
    		Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    
    		'Il file viene cancellato
    		objFSO.DeleteFile Server.MapPath("/prodotti/" & Rs.Fields("nome_file"))
    
    		Set objFSO = Nothing
    	End If
    %>	
    <p align="center">
    <%If pag > 1 Then%>
        Indietro
    <%End If%>
    <%
        Dim x
        x = 1
        For x = 1 To Rs.PageCount
            If CInt(pag) <> x Then
    %>
                [<%=x%>]
    <%
            Else
    %>
                [<%=x%>]
    <%
            End If
        Next
    %>
    <%If Rs.EOF = False Then%>
        Avanti
    <%End If%>
    </p>
    
    <table align="center" cellspacing="3" cellpadding="3" width="" border="0">
    		<tr>
    			<td align="center">
    				<input type="button" value="Chiudi Finestra" onClick="Chiudi()">
    			</td>
    		</tr>
    </table>
    	
    </body>
    
    </html>
    <%
        ' UN PO DI PULIZIA...
        Rs.Close
        Set Rs = Nothing
        cn.Close
        Set cn = Nothing
    %>
    Guarda un po' alla riga di codice che ho marcato in rosso ...
    Il recordset è 'morto' in quel punto! Rs.Fields("nome_file") non contiene un bel nulla! sei fuori dal while ... wend!
    io vedrei :
    codice:
    	<td align="center">">Elimina</td>
    e dopo, quando cancelli...
    codice:
    objFSO.DeleteFile Server.MapPath("/prodotti/" & Request.QueryString("nomefile"))
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

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.