- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Upload file - Eliminare un file
-
@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
-
Non ti da niente o solo Ecco il file:?
-
@cali1981 said:
Non ti da niente o solo Ecco il file:?
Nel senso che non mi posta nulla, ne il nome del file ne una stringa.... nulla.
Come se non riconoscesse nulla.Preciso che in upload ho scritto filename, ma neanche cosi funziona:
fs.DeleteFile(server.mappath("/public/" & filename))
-
Quello che intendevo io è se fa vedere la parte di stringa del response write, cioè "Ecco il file: ", oppure nemmeno quello. Provato a uppare un file e poi cancellarlo direttamente inserendo il percorso dentro fs.deletefile??
-
@cali1981 said:
Quello che intendevo io è se fa vedere la parte di stringa del response write, cioè "Ecco il file: ", oppure nemmeno quello. Provato a uppare un file e poi cancellarlo direttamente inserendo il percorso dentro fs.deletefile??
Si si, "Ecco il file: " lo leggo.
No non ho provato ad uppare il file, bella domanda :?:?
Peccato che non sappia come :bho:
-
@leftist1973 said:
Si si, "Ecco il file: " lo leggo.
No non ho provato ad uppare il file, bella domanda :?:?
Peccato che non sappia come :bho:Ciao Cali,
finalmente funzionaaaaPosto lo script:
<%.....connessione al db
%>
<%
' Recupero l id
id=Request.Querystring("id")
' Elimino il file corrispondente all id
Dim Rs
Dim Sql
Sql = "SELECT nome_file FROM UPLOAD WHERE id="&id
Set Rs = Conn.Execute(Sql)
If Rs.Eof Then
Response.Write "Nessun file associato per id prodotto <strong>" & Request.QueryString("id") & "</strong>"
Else
Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
'Il file viene cancellato
objFSO.DeleteFile(Server.MapPath("\public"&(rs("nome_file"))))
Set objFSO = Nothing
%>
<%
' Elimino il record
SQL="DELETE FROM UPLOAD WHERE id="&id
Conn.Execute(SQL)
conn.close
Set conn = NOTHING
End If
%>Grazie per l'enorme pasienza e per l'aiuto.
-
di niente! Alla prossima