Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Upload Asp.net
mercoledì 05 novembre 2003 - 17.42
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
mer 5 nov 2003 - 17:42
In una procedura di Upload sto incontrando difficoltà solo per il fatto che i file che devono essere caricati non sono dei tipi noti (cioè predefiniti, come ad ex.: text, image,...). L'estensione dei file che devono essere caricati è alfanumerica (ex.: *.02D,*.03X,...) oppure *.pdd.
Utilizzando la proprietà ContentType della classe HtttpPostedFile mi viene consentito di discriminare i file solo in base al tipo (o sottotipo) e non alla particolare estensione.
Cosa mi consigliate di fare? Vi ringrazio per qualsiasi consiglio, ciao alessandro.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 6 nov 2003 - 00:23
Ciao,
Alessandro, come no?
Prova a guardare nell'area Tips & Tricks questo esempio di Upload File.
http://www.dotnethell.it/Tips/Tip.aspx?TipID=67
Puoi recuperare il nome usando la proprietà .Filename dell'oggetto HttpPostedFile e dopo eventualmente usare la Path.GetExtension(<nomedelfile>) per recuperare la tua estensione .pdd piuttosto che .exe o altro.
Da qui puoi negare o garantire la scrittura del file su disco e quindi l'upload oppure rimandare l'utente ad un messaggio d'errore.
Mi sembra abb. chiaro.
Facci sapere.
Ciao
David
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
gio 6 nov 2003 - 11:27
Caro David,
ti ringrazio per i consigli, tutto OK.
A presto, alessandro.
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
gio 6 nov 2003 - 12:40
Ciao a tutti,
sempre in riferimento all' Upload ho difficoltà nel confrontare le estensioni alfanumeriche (.02X, 03D,...). Dove X e D sono fisse e i numeri possono invece variare. L'IF che vorrei funzionasse é:
if StandardExtensionFile=".pdd" or StandardExtensionFile=".##x" or_ StandardExtensionFile=".##d" then...
e l'intero script (in VB.NET) che metto a disposizione di tutti è:
Sub Button_Upload(s As Object, e As EventArgs)
' extract the filename part from the full path of the posted file
dim fileName as string = System.IO.Path.GetFileName(InputFileUp.PostedFile.FileName)
' extract the Extension from fileName
dim ExtensionFile as string = System.IO.Path.GetExtension(fileName)
dim StandardExtensionFile as string
StandardExtensionFile = ExtensionFile.ToLower
if StandardExtensionFile=".pdd" or StandardExtensionFile=".##x" or StandardExtensionFile=".##d" then
' retrieve the destination dir path
dim destDir as string = Server.MapPath ("/UploadFile")
' combine the destination directory with the filename
dim destPath As String = System.IO.Path.Combine(destDir, fileName)
' save the file on the server
InputFileUp.PostedFile.SaveAs(destPath)
Label1.Visible=True
Label1.Text= StandardExtensionFile
else
Label1.Visible=True
end if
End sub
Il problema sono i caratteri ##. Cosa mi consigliate?
Vi ringrazio. Per David: non preoccuparti se non hai tempo, cmq grazie. Ale
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 6 nov 2003 - 22:45
Ciao,
allora immagino che tu con il simbolo # volevi indicare una qualsiasi cifra no? Una specie di carattere jolly, così si chiamano. Allora, le opzioni sono tre, puoi usare la funzione VB.NET IsNumeric e passargli i due caratteri dell'estensione che ti servono quindi se è per esempio ".02X" passi a IsNumeric "02" la quale ti ritorna vero se sono numeri oppure falso se esiste una lettera.
Oppure, puoi costruire un controllo customizzato, personalizzato, tuo, in cui controlli se il primo carattere è una qualsiasi cifra fra 0 e 9 e così anche per il secondo.
Oppure ancora industriarti e se non le conosci ancora studiarti le regular expressions che sono fatte apposta per questi tipi di operazioni.
ciao
David
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
lun 10 nov 2003 - 09:20
Grazie David dei consigli,
cmq io ho adottato un'altra soluzione (aggirando il problema).
Dato che i miei "particolari" file (ex.:04X , 19D) sono dei file asci e pur non avendo
l'estensione .txt rientrano nel tipo text/plain, non faccio altro che consentire il caricamento di file text/plain e contemporaneamente nego il caricamento di .txt.
In questo modo i file risultanti da tale intersezione sono proprio i miei file (ex.:04X , 19D).
Riporto di seguito l'intera routin, spero che possa servire a qualcuno:
Sub Button_Upload(s As Object, e As EventArgs)
' extract the filename part from the full path of the posted file
dim fileName as string = System.IO.Path.GetFileName(InputFileUp.PostedFile.FileName)
' extract the Extension from fileName
dim ExtensionFile as string = System.IO.Path.GetExtension(fileName)
dim StandardExtensionFile as string
StandardExtensionFile = ExtensionFile.ToLower
If ((InputFileUp.PostedFile.ContentType.StartsWith("text/plain"))and not(StandardExtensionFile=".txt")) or StandardExtensionFile=".pdd" then
' retrieve the destination dir path
dim destDir as string = Server.MapPath ("/UploadFile")
' combine the destination directory with the filename
dim destPath As String = System.IO.Path.Combine(destDir, fileName)
' save the file on the server
InputFileUp.PostedFile.SaveAs(destPath)
Label1.Visible=false
else
Label1.Visible=True
end if
End sub
Ciao a tutti...
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 10 nov 2003 - 12:06
Grazie del contributo :)
Felice che tu abbia risolto :)
David
6969
Profilo
| Junior Member
88
messaggi | Data Invio:
mer 12 nov 2003 - 11:59
Caro David,
sempre in riferimento all'Upload,
ho utilizzato il controllo HtmlInputFile ma non riesco, pur avendo importato il
NameSpace="System.Web.UI.HtmlControls.HtmlInputFile" a disporre di tutte le
proprietà concepite per questo controllo (come accept oppure EnableViewState)
in poche parole il mio editor non me le rende disponobili nel menù a tendina e non
le riesco ad attivare neanche se le imposto a livello di Sub...
Cosa mi consigli, grazie, alessandro.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !