- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Upload file - Eliminare un file
-
Questo cancellerebbe già il file. Immagino che tu voglia mettere in quella tabella un link che faccia cancellare il file no? Quindi dovrai mettere un link verso una pagina, a cui passi un id, quindi ad esempio cancella_file.asp?id=1234, e in quella pagina prendi il valore di id, carichi il percorso del file da db, e se esiste lo cancelli con quello spezzono di codice che ho scritto sopra.
-
error....e poi che ti scrive?? lo scrivi l'errore completo??
-
@cali1981 said:
Questo cancellerebbe già il file. Immagino che tu voglia mettere in quella tabella un link che faccia cancellare il file no? Quindi dovrai mettere un link verso una pagina, a cui passi un id, quindi ad esempio cancella_file.asp?id=1234, e in quella pagina prendi il valore di id, carichi il percorso del file da db, e se esiste lo cancelli con quello spezzono di codice che ho scritto sopra.
Allora sono ottusoNella pagina dove visualizzo i file caricati inserisco il link con la banale immagine di elimina:
<a href="cancella.asp?id=<%=rs.fields("id")%>"><img src="immagini/elimina.gif" width="16" height="16" border="0" /></a>Nalla pagina cancella.asp:
<%
' //// connessione al DB
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("/mdb-database/database.mdb")
' //// seleziono la tabella per stampare a video i link ai file caricati e ordino i risultati ID decrescente
Sql = "Select * from UPLOAD order by ID Desc ;"
Set Rs = Conn.Execute(Sql)
%>
<% set fs = CreateObject("Scripting.FileSystemObject")
fs.DeleteFile(server.mappath("pathdelfile")) %>Risultato: impossibile visualizzare la pagina: errore interno nel server.
Per La Maglia Rosanero: File not found
-
[quote=leftist1973;481674]
Cosi mi funziona, ovvero cancella i record (non anche i file caricati - meglio di nulla) ma ora non capisco perchè la pagina cancella.asp che contiene lo script indicato in basso mi posta "impossibile visualizzare la pagina"
:bho:<%
id = request.querystring("id")
' //// connessione al DB
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("/mdb-database/database.mdb")
' //// seleziono la tabella per stampare a video i link ai file caricati e ordino i risultati ID decrescente
Sql = "DELETE FROM UPLOAD WHERE id="&id&""
Set Rs = Conn.Execute(Sql)
%>
<% set fs = CreateObject("Scripting.FileSystemObject")
fs.DeleteFile(server.mappath("pathdelfile")) %>
-
<% set fs = CreateObject("Scripting.FileSystemObject")
fs.DeleteFile(server.mappath("pathdelfile")) %>ovviamente pathdelfile non va bene qui dentro, devi metterci il path del file, non la scritta path del file
-
@cali1981 said:
<% set fs = CreateObject("Scripting.FileSystemObject")
fs.DeleteFile(server.mappath("pathdelfile")) %>ovviamente pathdelfile non va bene qui dentro, devi metterci il path del file, non la scritta path del file
Almeno questo si, ovviamente ho copiato e incollatoprima di aver fatto tutte le modifiche:
<% set fs = CreateObject("Scripting.FileSystemObject")
fs.DeleteFile(server.mappath("/mdb-database/database.mdb"))
%>Funge tutto, tranne che la pagina risulta ancora con errore interno del server, non mi dà altri errori ne righe.
-
Prova a vedere pezzo per pezzo caso da errore. All'inizio fatti visualizzare solo l'id poi vai avanti e vedi quando si ferma
-
@cali1981 said:
Prova a vedere pezzo per pezzo caso da errore. All'inizio fatti visualizzare solo l'id poi vai avanti e vedi quando si ferma
Grazie Cali, sei stato davvero gentilissimo
Ora funziona tutto, anche se non riesco ad eliminare il file salvato nella cartella pubilc (Aruba)
posto lo script magari se ancora mi sopporti puoi darmi un ultimissimo consiglio.
In caso contrario ancora grazie, ti sono debitore.
<%' //// connessione al DB
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("/mdb-database/database.mdb")
%>
<%
id = request.querystring("id")' //// seleziono la tabella per stampare a video i link ai file caricati e ordino i risultati ID decrescente
Sql = "DELETE FROM UPLOAD WHERE id="&id&""
Set Rs = Conn.Execute(Sql)
conn.closeprogressivo=Trim(Request("progressivo"))
Response.Write("Hai cancellato la Comunicazione Interna Dealer!" )
%><% set fs = CreateObject("Scripting.FileSystemObject")
fs.DeleteFile(server.mappath("/vetromile.it/public/"))
%>Ciaoooo
-
Se il codice è esattamente questo, l'errore sta su fs.DeleteFile(server.mappath("/vetromile.it/public/")), perchè oltre alla directory ci devi mettere anche il nome del file che vuoi cancellare, che immagino prenderai da db.
-
@cali1981 said:
Se il codice è esattamente questo, l'errore sta su fs.DeleteFile(server.mappath("/vetromile.it/public/")), perchè oltre alla directory ci devi mettere anche il nome del file che vuoi cancellare, che immagino prenderai da db.
Ciao Cali,
sono riuscito a seguire tutti i tuoi consigli, ma questo non l'ho capito.Cioè non capisco come.
Il campo nel db si chiama nome_file.Ho provato varie soluzioni ma il risultato è sempre lo stesso: il nulla :bho::bho:
-
fs.DeleteFile(server.mappath("/vetromile.it/public/" & Rs.Fields("nome_file")))
-
@cali1981 said:
fs.DeleteFile(server.mappath("/vetromile.it/public/" & Rs.Fields("nome_file")))
Ciao Cali, ancora grazie per la pasienza.
Avevo già provato cosi, ma dà errore pagina (impossibile visualizzare la pagina) e comunque non cancella il file caricato, mentre l'ID si :(:(
x
-
vedi se il file "/vetromile.it/public/" & Rs.Fields("nome_file") esiste sul serio
-
@cali1981 said:
vedi se il file "/vetromile.it/public/" & Rs.Fields("nome_file") esiste sul serio
Esiste, ho provato anche cosi:
fs.DeleteFile(server.mappath("/public/" & Rs.Fields("nome_file")))La pagina dove effettuo il caricamento ha due campi:
- titolo_file = dò un nome al file caricato
- nome_file = file da caricare
Risultato:
data - titolo_file - file
-
Hai i diritti per cancellare il file? Sei su public quindi dovresti averli. Comunque io intendevo provare a vedere se il file esiste usando quel percorso, qualcosa del tipo
if fs.FileExists (server.mappath("/public/" & Rs.Fields("nome_file"))) then Response.write("esiste")
-
@cali1981 said:
Hai i diritti per cancellare il file? Sei su public quindi dovresti averli. Comunque io intendevo provare a vedere se il file esiste usando quel percorso, qualcosa del tipo
if fs.FileExists (server.mappath("/public/" & Rs.Fields("nome_file"))) then Response.write("esiste")
Si ho i diritti per cancellare.
Bhè, se uso la tua stringa mi esce impossibile visualizzare la pagina - record eliminato - il file restaEppure il campo è nome_file, non capisco:bho:
Adesso mi sono perso, ma non mollo è una questione di principio.Grazie per la pasienza
-
il codice che ti ho dato io non penso vada bene, era solo in linea di principio. controllalo, e in caso fai come prima vedendo qual'è la riga che non va.
-
@cali1981 said:
il codice che ti ho dato io non penso vada bene, era solo in linea di principio. controllalo, e in caso fai come prima vedendo qual'è la riga che non va.
E' la stringa fs che non và, eppure quelli sono i campi!
-
Puoi ripostare tutto il codice?
-
@cali1981 said:
Puoi ripostare tutto il codice?
Cali ma è possibile che l'errore lo faccia nello script della pagina upload.asp
<%
option explicit
Dim folder
Dim titolo_file
Dim nom_file
Dim byteCount
Dim RequestBin
Dim PosBeg
Dim i
Dim char
Dim PosEnd
Dim boundary
Dim boundaryPos
Dim Pos
Dim intCount
Dim Name
Dim PosFile
Dim PosBound
Dim Value
Dim FileName
Dim ContentType
Dim nome_file
Dim Conn
Dim filepathname
Dim ScriptObject
Dim MyFile
Dim Sql
Dim Rsfolder = "/public"
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
Sub BuildUploadRequest(RequestBin)
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
'Get an object name
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
If PosFile<>0 AND (PosFile<PosBound) Then
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
UploadControl.Add "Value" , Value
UploadRequest.Add name, UploadControl
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop
End Sub
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
' //// Fine Componente Upload
' //// riempio le variabili con valori proveninti dalla form
titolo_file = UploadRequest.Item("titolo_file").Item("Value")
nome_file = UploadRequest.Item("nome_file").Item("Value")
' //// controllo che la form sia state regolarmente popolata
If IsNull(nome_file) OR nome_file = "" OR IsNull(titolo_file) OR titolo_file = "" Then
Response.Write ("<center><br><b>CAMPI OBBLIGATORI!</b><br><br><a href='javascript:history.back()'><b>RITORNA</b></a></center>")
Response.End
End if
' //// connessione al DB
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("/mdb-database/database.mdb")
' //// creo il file nella folderif UploadRequest.Item("nome_file").Item("FileName")="" then
Else
contentType = UploadRequest.Item("nome_file").Item("ContentType")
filepathname = UploadRequest.Item("nome_file").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,""))
value = UploadRequest.Item("nome_file").Item("Value")
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(folder)&""&filename)
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
End if
' //// seleziono la tabella dove scrivero l'ora, il titolo ed il nome del file
Sql = "Select * FROM upload"
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open SQL, Conn, 1, 2
' //// aggiugo un nuovo record alla tabella
Rs.AddNew
Rs("data") = date()
Rs("titolo_file") = titolo_file
Rs("nome_file") = filename
Rs.UpDate
' //// chiudo il record set
Rs.Close
Set Rs = Nothing
' //// chiudo la connessione
Conn.Close
Set Conn = Nothing
' //// carico la pagina di risposta e stampo a video il link al file caricato
Response.Redirect("index.asp")
%>Forse è qui che commetto qualche errore, perchè se ad esempio faccio un response.write("Ecco il file: "& nome_file)
Response.end
Non mi dà nulla