UpLoad, controllo campo & rinominafile

tempista

Nuovo Utente
31 Lug 2004
10
0
0
Buonasera a tutti,
mi aiutate ad adattare il codice sottostante alla pagina "inserimento2.asp"?
Il codice per l'upload della pagina "inserimento2.asp", permette di uplodare un file mantenendone il nome originale.
Quello che seve a me è:

- se il campo allegato è vuoto, cuntinui ugualmente l'eseguzione dello scipt senza restituire errori;

- rimnominare il file con un nome del tipo "allegato_numeroprograssivo.estensione", cioè che assegni un nuovo nome file senza sovrascrivere uno già presente

nella cartella "allegati".

Praticamente è il codice qui sotto ma non riesco ad adattarlo alla pagina "inserimento2.asp", causa le mie limitatissime conoscenze di .asp SORRY!
Prima o poi, imparerò! :)

Attendo gentile risposta augurando a tutti una buona serata.


______________________________________




' --- Inizio cidice controllo campo & rinomina file ----

if upl.Form("allegato").IsEmpty Then
allegato="nessunallegato"
Else
Randomize
NuovoNomeFile = Cstr(Int((1000000 - 20 + 1) * Rnd + 20))
NomeFile = Mid(upl.Form("allegato").UserFilename, InstrRev(upl.Form("allegato").UserFilename, "\") + 1)
allegato=NomeFile
Estensione =Right(NomeFile, 4)
allegato="allegato_"&NuovoNomeFile&Estensione
upl.Form("allegato").SaveAs server.mappath("allegati/" & allegato)
End if

' --- Fine cidice controllo campo & rinomina file ----





______________________________________





Pagina: inserimento2.asp



<%

'variabili di configurazione

Dim folder
folder = "/public/amministrazione/login/articoli/allegati" ' ---- directory sul server con accesso in scrittura ---

'fine variabili di configurazione


'---- Inizio Componente Upload ----

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

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
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

'---- Fine Componente Upload ----


gg=UploadRequest.Item("gg").Item("Value")
mm=UploadRequest.Item("mm").Item("Value")
aaaa=UploadRequest.Item("aaaa").Item("Value")
categoria=UploadRequest.Item("categoria").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>DESCRIZIONE

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, categoria, 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("categoria") = categoria
rs("titolo") = titolo
rs("articolo") = articolo
rs("allegato") = filename
rs.update

rs.Close
set rs = Nothing

Response.Redirect("/public/amministrazione/login/articoli/articoli.asp")
%>
 

daviduccio

Moderatore
5 Ago 2004
1.114
0
0
39
Sicilia
www.daviduccio.it
Al posto di NuovoNomeFile, metti un parametro inviato con GET o POST, come viene meglio a te.....ES.

allegato_&<%=Request.QueryString("ID")%>&estensione

puoi mettere anche il risultato di un recordset!!

Non ho provato lo script, quindi potresti avere problemi con tutte quelle cazzo di virgolette...... prova a sistemare le virgolette al posto giusto, tipo:

"allegato_"&"<%=Request.QueryString("ID")%>"&"estensione"
oppure
allegato_&"<%=Request.QueryString("ID")%>"&estensione
oppure
allegato_& "Request.QueryString("ID")" &estensione
oppure
allegato_&'Request.QueryString("ID")'&estensione

non ricordo bene..........

Davide - Daviduccio.it
 

tempista

Nuovo Utente
31 Lug 2004
10
0
0
Ciao è un po' che ho visto la risposta ma non ci avevo capito nulla... Sono troppo scarso... :)
Praticamente assegneresti come nome al file il numero dell'ID, perchè è univoco e quindi mai uguale.
Non ci avevo pensato... Sei un grande!
Il problema è che non so in quale punto dello script lo devo mettere.
Nel mio primo post intendevo unire i due codici.
In ogni modo ti ringrazio e ti chiedo se puoi gentilmente aiutarmi o indicarmi in quale punto del seguente codice devo inserire la tua "dritta".
Ti auguro una buona serata! :)

Di seguito il codice:

^^^^^^^^^^^^


Pagina: inserimento2.asp



<%

'variabili di configurazione

Dim folder
folder = "/public/amministrazione/login/articoli/allegati" ' ---- directory sul server con accesso in scrittura ---

'fine variabili di configurazione


'---- Inizio Componente Upload ----

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),Re questBin,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

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
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

'---- Fine Componente Upload ----


gg=UploadRequest.Item("gg").Item("Value")
mm=UploadRequest.Item("mm").Item("Value")
aaaa=UploadRequest.Item("aaaa").Item("Value")
categoria=UploadRequest.Item("categoria").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>DESCRIZIONE

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, categoria, 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("categoria") = categoria
rs("titolo") = titolo
rs("articolo") = articolo
rs("allegato") = filename
rs.update

rs.Close
set rs = Nothing

Response.Redirect("/public/amministrazione/login/articoli/articoli.asp")
%>



















daviduccio ha scritto:
Al posto di NuovoNomeFile, metti un parametro inviato con GET o POST, come viene meglio a te.....ES.

allegato_&<%=Request.QueryString("ID")%>&estensione

puoi mettere anche il risultato di un recordset!!

Non ho provato lo script, quindi potresti avere problemi con tutte quelle cazzo di virgolette...... prova a sistemare le virgolette al posto giusto, tipo:

"allegato_"&"<%=Request.QueryString("ID")%>"&"estensione"
oppure
allegato_&"<%=Request.QueryString("ID")%>"&estensione
oppure
allegato_& "Request.QueryString("ID")" &estensione
oppure
allegato_&'Request.QueryString("ID")'&estensione

non ricordo bene..........

Davide - Daviduccio.it
 

daviduccio

Moderatore
5 Ago 2004
1.114
0
0
39
Sicilia
www.daviduccio.it
Non preoccuparti! Ecco qui:

' --- Inizio cidice controllo campo & rinomina file ----

if upl.Form("allegato").IsEmpty Then
allegato="nessunallegato"
Else
Randomize
NuovoNomeFile = Cstr(Int((1000000 - 20 + 1) * Rnd + 20))
NomeFile = Mid(upl.Form("allegato").UserFilename, InstrRev(upl.Form("allegato").UserFilename, "\") + 1)
allegato=NomeFile
Estensione =Right(NomeFile, 4)
allegato="allegato_"&NuovoNomeFile&Estensione (Qui devi modificare il nome del file così Es. allegato_&<%=Request.QueryString("ID")%>&estensione )
upl.Form("allegato").SaveAs server.mappath("allegati/" & allegato)
End if

' --- Fine cidice controllo campo & rinomina file ----

Prova così, se proprio hai problemi, contattami a [email protected], che ti dò uno script che uso io! Nella stessa pagina puoi anche mettere un comando SQL che inserisce i dati direttamente sul database!

Davide - daviduccio.it
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
M [ASP] Upload file da form controllo Classic ASP 5
L [php] upload controllo dimensione immagine PHP 8
G UPLOAD con controllo esistenza file Classic ASP 0
ivarello Form Che avvia upload e controllo automatico PHP 1
L [PHP e FTP upload] controllo file allegato PHP 6
D Upload Baol controllo campi Classic ASP 1
M Upload immagine con javascript problemi con FormData() Javascript 1
Z Upload protetto e sicuro PHP 1
L Modifica file upload in ASP Classic ASP 2
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
Cosina Upload multiplo con invio allegati per email PHP 0
Cosina Upload multiplo con archiviazione in cartella PHP 16
P Script upload immagini jQuery 0
L upload image tramite url e cache PHP 10
W Non fa l'upload PHP 0
L Upload di un'immagine all'interno di un database usando php PHP 6
S Upload file senza doverlo selezionare PHP 2
P Upload foto cover e profilo jQuery 0
G Upload file error Apache 0
R Modifica codice per l'upload di più file PHP 1
S Problemi con modulo upload video php (help!) PHP 0
S [PHP] Upload stesso file PHP 14
max1974 [Javascript] dropzone upload to server Javascript 0
S [ASP.Net] [ASP] Upload Image ASP.NET 6
F [PHP] Informazioni upload PHP 11
G [PHP] upload file in server: percorso cartella PHP 2
M Upload 4 file php PHP 11
D [PHP] Upload intera cartella PHP 2
felino [PHP] Uploadify: upload immagini PHP 0
M [PHP] Nome file, upload e rinominare PHP 2
R Configurazione upload ftp su dvr IP Cam e Videosorveglianza 3
M [PHP] upload di un file esistente overwrite PHP 1
N [PHP] Test per l'upload di file attraverso un bot Telegram PHP 2
L [PHP] problema con upload e javascript (upload multiplo) Javascript 2
L [PHP] upload con errore PHP 2
V [PHP] Upload Excel in db PHP 0
jailbait [PHP] Upload immagine e stampa a schermo PHP 0
G PHP upload dati ed immagine PHP 7
F [PHP] Validare form prenotazione appuntamento tattoo con upload image PHP 0
D [PHP] Upload encrypt image PHP 0
C [PHP] Problema upload file (multiplo) PHP 1
P [PHP] Upload multiplo PHP 4
N [PHP] Problema upload immagini wordpress PHP 2
S [PHP] Upload file... PHP 6
michelangelopaone IPCAM Szinocam e upload FTP IP Cam e Videosorveglianza 0
razzor1994 Remote Upload Server Dedicati e VPS 0
P Barra upload file jQuery 1
giancadeejay [PHP] Aggiornare DB tramite UPLOAD file .csv PHP 39
MarcoGrazia [PHP] Upload e successiva visualizzazione immagini in DB PHP 3

Discussioni simili