[ASP.NET] File inlezen d.m.v. StreamReader; Eerst uploaden?

Pagina: 1
Acties:

  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
In een ASP.net webapplicatie moeten txt- en Excel-bestanden kunnen worden ingelezen, waarna de inhoud in een database wordt ingevoerd.

Als ik een file direct in een StreamReader zet krijg ik een "Access Denied" error.

Visual Basic .NET:
1
2
3
Dim FilePath as string = txtFilePath.Text
Dim StrRd as StreamReader
StrRd = New StreamReader(FilePath)


Na wat research heb ik ontdekt dat dit met de rechten van de ASPNET useraccount te maken heeft.
Moet ik de bestanden eerst uploaden naar een map op de server die de juiste rechten heeft voordat ik deze uberhaupt als stream kan inlezen? En als deze succesvol ingelezen is de file weer verwijderen?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 13-02 21:58

mulder

ik spuug op het trottoir

De bestanden staan dus niet op de server?

oogjes open, snaveltjes dicht


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 15:28
Dat lijkt me wel handig, aangezien asp.net serverside is. Als in je txtFilePath.Text c:\blaat.xls zet, dan probeert .net op je server het bestand c:\blaat.xls te lezen.

Roomba E5 te koop


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:34

gorgi_19

Kruimeltjes zijn weer op :9

Je hebt een FileUpload control, waaruit je ook direct de stream kan lezen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
gorgi_19 schreef op woensdag 13 september 2006 @ 15:20:
Je hebt een FileUpload control, waaruit je ook direct de stream kan lezen.
Zit deze ook in ASP.NET 1.1? Of bedoel je de 'File' HTMLcontrol?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:34

gorgi_19

Kruimeltjes zijn weer op :9

EmilneM schreef op woensdag 13 september 2006 @ 15:29:
[...]


Zit deze ook in ASP.NET 1.1? Of bedoel je de 'File' HTMLcontrol?
Maakt an sich niet uit, principe is hetzelfde. Zie MSDN voor de members van HttpPostedFile

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
gorgi_19 schreef op woensdag 13 september 2006 @ 15:44:
[...]

Maakt an sich niet uit, principe is hetzelfde. Zie MSDN voor de members van HttpPostedFile
Ok thanks!

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Try

     Dim stream1 As Stream
     stream1 = File1.PostedFile.InputStream

     Dim StrRd As New StreamReader(stream1)
     Dim sLine As String = StrRd.ReadLine

     StrRd.Close()
     stream1.Close()

Catch ex As Exception

     Alert(ex.message)

End Try


Het inlezen van het bestand gaat op basis van een wizard waar een aantal vragen moeten worden beantwoord.

De keuze van de file zit in één van de eerste stappen van de wizard. Pas op het laatste moment wordt de file daadwerkelijk gelezen. Echter, na een postback verdwijnt de waarde van de HtmlInputFile. Een mogelijkheid zou zijn om de waarde (het pad) op te slaan in een label maar volgens mij is het niet mogelijk om uit een label een inputstream te halen...

Weet één van jullie een oplossing?

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Na het selecteren van het bestand zal deze direct worden geupload bij het doorgaan naar de volgende stap in de wizard. Vandaar dat de naam weg is (immers, het bestand is al geupload).
Een optie is om het geuploade bestand na deze wizardstap tijdelijk op te slaan op de server (bv als een bestand, of wellicht bij kleine bestanden in de sessie) en bij het beeindigen van de wizard dit bestand weer op te vragen om te verwerken.

  • EmilneM
  • Registratie: December 2001
  • Laatst online: 15-09-2023
Orphix schreef op donderdag 14 september 2006 @ 15:28:
Na het selecteren van het bestand zal deze direct worden geupload bij het doorgaan naar de volgende stap in de wizard. Vandaar dat de naam weg is (immers, het bestand is al geupload).
Een optie is om het geuploade bestand na deze wizardstap tijdelijk op te slaan op de server (bv als een bestand, of wellicht bij kleine bestanden in de sessie) en bij het beeindigen van de wizard dit bestand weer op te vragen om te verwerken.
Mm ok. Dit zou dan de enige mogelijkheid zijn omdat het HtmlInputControl niet vanuit code te vullen is (anders zou ik de waarde eerst in een label op kunnen slaan en vervolgens bij de laatste stap de control vanuit de label weer vullen). Bedankt iig.
Pagina: 1