Buongiorno, ho trovato quello che mi serviva nel forum di Aruba, però ho ancora bisogno di aiuto, mi spiego meglio.
- Lo script qui di seguito funziona ma, il problema è che non riesco a trovare la stringa dove specificargli il percorso dove caricare i file attualmente lo carica nella stessa cartella dove è contenuto lo script io invece vorrei inserire il file nel seguente percorso:
/public/amministrazione/login/utilities/allegati
Dove la devo mettere questo percorso?
- Il secondo problema è che quando carico il file "MiaFoto.jpg" lo sript rinomina il file con il nome di "InMiaFoto.jpg", scrivendomi ugualmente nel database il nome originale.
In questo modo quando cancello il record, lo script cerca il file "MiaFoto.jpg" che non troverà mai perchè la foto al momento del caricamento è stata rinominata.
Come posso fare per evitare che il fiel venga rinominato?
Sicuro di trovare la risposta saluto tutti augurandovi una buona giornata.
P.S. Allego codice delle pagine:
Pag. 1
_______________________________________________________________________
<!--#include file="upload.asp"-->
<%
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
contentType = UploadRequest.Item("allegato").Item("ContentType")
filepathname = UploadRequest.Item("allegato").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("allegato").Item("Value")
'Create FileSytemObject Component
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
'Create and Write to a File
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd) & filename)
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
'---- Fine Componente Upload ----
gg=UploadRequest.Item("gg").Item("Value")
mm=UploadRequest.Item("mm").Item("Value")
aaaa=UploadRequest.Item("aaaa").Item("Value")
titolo=UploadRequest.Item("titolo").Item("Value")
articolo=UploadRequest.Item("articolo").Item("Value")
'--- Controlla che il campo titolo sia Pieno
If IsNull(titolo) OR titolo="" Then
Response.Write ("<table width='600'><tr><td valign='middle'><center><font color='#FF0000' size='2' face='Verdana, Arial, Helvetica, sans-serif'><img
src='/public/amministrazione/img/icona_attenzione.gif'><br><br><b>ERRORE !!</b><br><br>Hai dimenticato di riempire il campo <b>NOME
UTILITIE</b>.</font><br><br><font color='#000000' size='2' face='Verdana, Arial, Helvetica, sans-serif'><a href='javascript:history.back()'><b>Correggi
l'errore</b></a></font></center></td></tr></table>")
Response.End
End if
'--- Fine Controllo Campo titolo
'--- Controlla che il campo articolo sia Pieno
If IsNull(articolo) OR articolo="" Then
Response.Write ("<table width='600'><tr><td valign='middle'><center><font color='#FF0000' size='2' face='Verdana, Arial, Helvetica, sans-serif'><img
src='/public/amministrazione/img/icona_attenzione.gif'><br><br><b>ERRORE !!</b><br><br>Hai dimenticato di riempire il campo <b>DESCRIZION
UTILITIE</b>.</font><br><br><font color='#000000' size='2' face='Verdana, Arial, Helvetica, sans-serif'><a href='javascript:history.back()'><b>Correggi
l'errore</b></a></font></center></td></tr></table>")
Response.End
End if
'--- Fine Controllo Campo articolo
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("/mdb-database/database.mdb")
SQL = "Select id, gg, mm, aaaa, titolo, articolo, allegato FROM utilities"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 1, 2
rs.AddNew
rs("gg") = gg
rs("mm") = mm
rs("aaaa") = aaaa
rs("titolo") = titolo
rs("articolo") = articolo
rs("allegato") = filename
rs.update
rs.Close
set rs = Nothing
Response.Redirect("/public/amministrazione/login/utilities/articoli.asp")
%>
Pag. 2 (inclusione)
____________________________________________________________________
<%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")
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%>
Pag. Eiminazione
____________________________________________________________________
<%
id = Request.QueryString( "id" ).item
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("/mdb-database/database.mdb")
sql222="SELECT allegato FROM utilities WHERE id = "& id &" ;"
set ors222=Conn.Execute(sql222)
FileDaEliminare=ors222.Fields("allegato")
'--- Eliminazione di file ---
dim fs
Set fs=Server.CreateObject("Scripting.FileSystemObject")
TrovaFile=server.mappath("/public/amministrazione/login/utilities/allegati"& FileDaEliminare)
if fs.FileExists (TrovaFile) then
fs.DeleteFile TrovaFile
end if
set fs=nothing
'--- Fine eliminazione
ors222.Close
set ors222 = Nothing
strSQL= "DELETE FROM utilities WHERE id = "& id &" ;"
Conn.Execute(strSQL)
Conn.Close
set Conn = Nothing
Response.Redirect("/public/amministrazione/login/utilities/articoli.asp")
%>
- Lo script qui di seguito funziona ma, il problema è che non riesco a trovare la stringa dove specificargli il percorso dove caricare i file attualmente lo carica nella stessa cartella dove è contenuto lo script io invece vorrei inserire il file nel seguente percorso:
/public/amministrazione/login/utilities/allegati
Dove la devo mettere questo percorso?
- Il secondo problema è che quando carico il file "MiaFoto.jpg" lo sript rinomina il file con il nome di "InMiaFoto.jpg", scrivendomi ugualmente nel database il nome originale.
In questo modo quando cancello il record, lo script cerca il file "MiaFoto.jpg" che non troverà mai perchè la foto al momento del caricamento è stata rinominata.
Come posso fare per evitare che il fiel venga rinominato?
Sicuro di trovare la risposta saluto tutti augurandovi una buona giornata.
P.S. Allego codice delle pagine:
Pag. 1
_______________________________________________________________________
<!--#include file="upload.asp"-->
<%
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
contentType = UploadRequest.Item("allegato").Item("ContentType")
filepathname = UploadRequest.Item("allegato").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("allegato").Item("Value")
'Create FileSytemObject Component
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
'Create and Write to a File
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd) & filename)
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
'---- Fine Componente Upload ----
gg=UploadRequest.Item("gg").Item("Value")
mm=UploadRequest.Item("mm").Item("Value")
aaaa=UploadRequest.Item("aaaa").Item("Value")
titolo=UploadRequest.Item("titolo").Item("Value")
articolo=UploadRequest.Item("articolo").Item("Value")
'--- Controlla che il campo titolo sia Pieno
If IsNull(titolo) OR titolo="" Then
Response.Write ("<table width='600'><tr><td valign='middle'><center><font color='#FF0000' size='2' face='Verdana, Arial, Helvetica, sans-serif'><img
src='/public/amministrazione/img/icona_attenzione.gif'><br><br><b>ERRORE !!</b><br><br>Hai dimenticato di riempire il campo <b>NOME
UTILITIE</b>.</font><br><br><font color='#000000' size='2' face='Verdana, Arial, Helvetica, sans-serif'><a href='javascript:history.back()'><b>Correggi
l'errore</b></a></font></center></td></tr></table>")
Response.End
End if
'--- Fine Controllo Campo titolo
'--- Controlla che il campo articolo sia Pieno
If IsNull(articolo) OR articolo="" Then
Response.Write ("<table width='600'><tr><td valign='middle'><center><font color='#FF0000' size='2' face='Verdana, Arial, Helvetica, sans-serif'><img
src='/public/amministrazione/img/icona_attenzione.gif'><br><br><b>ERRORE !!</b><br><br>Hai dimenticato di riempire il campo <b>DESCRIZION
UTILITIE</b>.</font><br><br><font color='#000000' size='2' face='Verdana, Arial, Helvetica, sans-serif'><a href='javascript:history.back()'><b>Correggi
l'errore</b></a></font></center></td></tr></table>")
Response.End
End if
'--- Fine Controllo Campo articolo
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("/mdb-database/database.mdb")
SQL = "Select id, gg, mm, aaaa, titolo, articolo, allegato FROM utilities"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 1, 2
rs.AddNew
rs("gg") = gg
rs("mm") = mm
rs("aaaa") = aaaa
rs("titolo") = titolo
rs("articolo") = articolo
rs("allegato") = filename
rs.update
rs.Close
set rs = Nothing
Response.Redirect("/public/amministrazione/login/utilities/articoli.asp")
%>
Pag. 2 (inclusione)
____________________________________________________________________
<%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")
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%>
Pag. Eiminazione
____________________________________________________________________
<%
id = Request.QueryString( "id" ).item
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("/mdb-database/database.mdb")
sql222="SELECT allegato FROM utilities WHERE id = "& id &" ;"
set ors222=Conn.Execute(sql222)
FileDaEliminare=ors222.Fields("allegato")
'--- Eliminazione di file ---
dim fs
Set fs=Server.CreateObject("Scripting.FileSystemObject")
TrovaFile=server.mappath("/public/amministrazione/login/utilities/allegati"& FileDaEliminare)
if fs.FileExists (TrovaFile) then
fs.DeleteFile TrovaFile
end if
set fs=nothing
'--- Fine eliminazione
ors222.Close
set ors222 = Nothing
strSQL= "DELETE FROM utilities WHERE id = "& id &" ;"
Conn.Execute(strSQL)
Conn.Close
set Conn = Nothing
Response.Redirect("/public/amministrazione/login/utilities/articoli.asp")
%>