Avatar billede per2edb Praktikant
27. april 2012 - 18:28 Der er 11 kommentarer og
1 løsning

Uplode og sletning af filer fra en mappe på serveren

Jeg har webmail på en asp.net4 aspx side.
jeg skal sende vedhæftede filer med MyMail.Attachments.Add(Attachment)

Filerne ligger på en server placeret med:
FileUpload1.SaveAs(Server.MapPath("~\Temp\") & FileUpload1.FileName)

1) Hvordan får jeg alle filer hentet (up loded) på formen:
String="file1.ext,file2.ext,..."
2) Hvordan får jeg mappen Temp tømt for filer
Avatar billede keysersoze Guru
27. april 2012 - 20:35 #1
1) ikke helt forstået? Hvis du kan uploade fra FileUpload1 gør du præcis det samme med FileUpload 2 osv?

2) http://msdn.microsoft.com/en-us/library/system.io.file.delete.aspx
Avatar billede per2edb Praktikant
27. april 2012 - 21:10 #2
Det ser umiddelbart ud som det jeg søger. Jeg prøver det
Avatar billede keysersoze Guru
28. april 2012 - 11:19 #3
så lægger jeg et svar i mellemtiden.
Avatar billede per2edb Praktikant
28. april 2012 - 20:33 #4
Det driller!
Jeg fik lavet en streng af filer der ligger på SERVEREN
i mappen "~\Temp\" . Strengen ser sådan ud:

sAttach = "~\Temp\fil1.txt,~\Temp\fil2,txt"

De skal nu sendes med MyMail.Attachments men her kræves C:\Temp\file1.txt ....

Det skal sendes fra SERVEREN så C:\  duer ikke. Det er vist noget med server.map men hvordan laver jeg det i koderne nedenfor

  'Build an IList of mail attachments.
    If sAttach <> "" Then
        Dim delim As Char = ","
        Dim sSubstr As String
            For Each sSubstr In sAttach.Split(delim)
                Dim myAttachment As MailAttachment = New MailAttachment(sSubstr)
                MyMail.Attachments.Add(myAttachment)
            Next
    End If
Avatar billede keysersoze Guru
28. april 2012 - 21:23 #5
Hvorfor opbygge den string og ikke bare håndtere upload, tilføj og slet af én fil ad gangen? Ligesom du bruger Server.MapPath i Upload kan du også gøre det i forbindelse med til attachment.
Avatar billede per2edb Praktikant
28. april 2012 - 23:12 #6
Jeg kan ikke lave det hele om igen. Der er en årsag til jeg gør som jeg gør. Venligst hælp mig videre herfra.

Opmærkningerne vist ovenfor fra Build an ... og nedad er 100% MS standard opmærkninger der findes tilsvarende mange steder når der søges med google. Imidlertid kan jeg ikke finde de tilpasset opmærkninger tilpasset SERVER. Det er det jeg søger.
Avatar billede keysersoze Guru
28. april 2012 - 23:41 #7
Det er sjældent jeg ser "standarder", der gør arbejdet tungere og benytter potentielt uhensigtsmæssige variabeltyper - men det er selvfølgelig ikke op til mig at bestemme hvad du skal benytte.

Server.MapPath tager imod en string så det benyttes som du gør andetsteds i koden;

New MailAttachment(Server.MapPath(sSubstr))
Avatar billede per2edb Praktikant
29. april 2012 - 14:42 #8
Så er jeg 99% færdig
Blot skal de i server mappen indlagte filer slettes som det sidste.
Jeg har brugt denne:
System.IO.Directory.Delete(Server.MapPath("~\Temp\"), true)
Men den sletter hele mappen. kan du hjælpe så det kun er indholdet der slettes. Så er opgaven løst
Avatar billede keysersoze Guru
29. april 2012 - 15:19 #9
Benyt metoden jeg linkede til i #1 i samme slags gennemløb så du selv har skrevet i #4. Så sikrer du dig at du ikke får slettet filer en anden bruger arbejder på i samme øjeblik.
Avatar billede per2edb Praktikant
29. april 2012 - 17:21 #10
jeg har set på #1 men er ikke profi nok til at komme videre.
Kan denne ikke tilrettes:
System.IO.Directory.Delete(Server.MapPath("~\Temp\"), true)
Avatar billede keysersoze Guru
29. april 2012 - 19:41 #11
Din metoder sletter en mappe - deraf navnet directory delete. Benytter du den skal du oprette mappen igen - men samtidig risikerer du jo at slette filer som andre tråde i applikationen arbejder med og derfor er det en uhyre usikker løsning.

System.IO.File.Delete(Server.MapPath(sSubstr))

Læg den ind i et gennemløb som i #4.
Avatar billede per2edb Praktikant
29. april 2012 - 21:13 #12
Så virker det. Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester