333 messaggi dal 09 luglio 2003
Ciao! Sto cercando di studiare come effettuare l'upload di un file in asp.net.
Ci sono alcune cose che non mi sono chiare, spero possiate aiutarmi.

In pratica voglio far si che un'utente selezioni un file dal suo hard disk che questo file venga salvato nel server.
Da quello che ho capito devo usare gli oggetti File, Stream Reader e StreamWriter,ma non mi è chiaro come il file venga salvato sul server....

jordi75
2.198 messaggi dal 30 novembre 2001
nella pagina aspx metti:
<INPUT type="file" id="file1" runat="server">
e poi un button che ti fà il postback, e nella gestione dell'evento click del button scrivi:
file1.PostedFile.SaveAs("tuonomefile")
per avere il nome del file usa:
file1.PostedFile.FileName.
333 messaggi dal 09 luglio 2003
file1 che tipo di oggetto è? come devo dichiararlo in vb?

jordi75
333 messaggi dal 09 luglio 2003
ok, è un HtmlInputFile,giusto?
In questo modo l'utente seleziona il file da inviare al server, ok?
Ho creato un pulsante come mi hai detto:

Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim fname As String = file1.PostedFile.FileName()
file1.PostedFile.SaveAs(fname)

End Sub

Quando clicco sul pulsante mi dà questo errore:

Access to the path "C:\individuare.doc" is denied.

????????

Un'altra cosa...quando salvo il file come faccio a dirgli dove salvarlo?

jordi75
2.198 messaggi dal 30 novembre 2001
scrivi così:
strname= server.mappath(fname)
file1.PostedFile.SaveAs(strname)
in questo modo ti aggiunge il percorso della root, perchè al metodo SaveAs gli devi passare un percorso fisico e non virtuale e la directory in cui salvi il file deve essere accessibile in scritura.
333 messaggi dal 09 luglio 2003
Ho fatto così:

Dim fname As String = file1.PostedFile.FileName()
Dim strname As String = (Server.MapPath(fname) & "\Report")
file1.PostedFile.SaveAs(strname)

Ho aggiunto \Report alla root
Ho reso accessibile la directory in scrittura.
Quando clicco mi dà questo errore

Invalid path for MapPath 'C:\Inetpub\wwwroot\CRGA\ProvaDirectory\menuscorrimento.pdf'. A virtual path is expected.

p.s. grazie dell'aiuto....

jordi75
66 messaggi dal 01 maggio 2001
se è come gli altri linguaggi, la sbarretta per i percorsi virtuali va al contrario.

Cioè se vuoi il percorso http://localhost/report allora sì Server.MapPath("/report")
se invece lo vuoi in CRGA\ProvaDirectory\report allora è
("/CRGA/Provadirectory/report")
puoi usare anche il percorso relativo togliendo la sbarretta all'inizio... ad
es. se stai su crga
Server.MapPath("provadirectory/report")

Poi il resto lo ignoro, se vada inserito anche il file o basta solo la cartella :)
Se funziona ti offro una birra :)

Ciao & scusate l'intrusione
. Atari


Modificato da Atari il 29 ottobre 2003 17.39 -

// Forza Reggina :)
333 messaggi dal 09 luglio 2003
Calma....
In pratica io ho provato a spostare il file menuscorrimento.pdf da c:\inetpub\wwwroot\crga\provadirectory a c:\inetpub\wwwroot\crga\Report

L'errore me lo dà sul primo indirizzo, che è quello del file originale, non sul secondo.

jordi75

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.