Avatar billede bakkers Nybegynder
08. maj 2006 - 21:34 Der er 12 kommentarer og
1 løsning

fejl ved upload af fil

Jeg prøver at uploade en fil fra min hjemmeside på min lokale iis server men får en fejl.

Jeg bruger denne kode til at uploade filen med

            try
            {
                urlFile.PostedFile.SaveAs(Server.MapPath("\\minbil\\site\\upload\\") + urlFile.PostedFile.FileName);
                result.Text = "File <b></b> uploaded successfully";
            }
            catch (Exception error)
            {
                result.Text = "Error saving <b>" + error.ToString() + " ";
            }

men jeg får denne fejl.

Error saving System.NotSupportedException: The given path's format is not supported. at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath) at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath) at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, AccessControlActions control, String[] pathList, Boolean checkForDuplicates, Boolean needFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode) at System.Web.HttpPostedFile.SaveAs(String filename) at site_userArea_createUser.createUser_click(Object sender, EventArgs e)

Jeg har rodet med det bib jeg prøver at uploade til, i min iis server men har ikke kunne få det til at virke.
Avatar billede dr_chaos Nybegynder
08. maj 2006 - 21:37 #1
er din Server.MapPath("\\minbil\\site\\upload\\")  korrekt ?
Avatar billede arne_v Ekspert
08. maj 2006 - 21:49 #2
er MapPath ikke til relative stier ?

jeg mener ikke at ASP.NET scripts umiddelbart har ret til at tilgaa shares
paa andre systemer
Avatar billede bakkers Nybegynder
08. maj 2006 - 22:02 #3
Jeg har dobbelt tjekket min sti så minbil\\site\\upload skulle være rigtig.

Jeg har for at se om det var stien det var galt med også prøvet at sætte en sti som c:\\ og så filnavn.. Det gav samme fejl.
Avatar billede snepnet Nybegynder
09. maj 2006 - 03:23 #4
Du må bruge en virtuel sti i MapPath (som arne skrev) - f.eks.
Server.MapPath("SomeSubFolder/SomeSubSubFolder/")
Mvh
Avatar billede bakkers Nybegynder
09. maj 2006 - 08:01 #5
Skal jeg skrive det sådan her istedet for så?

try
            {
                urlFile.PostedFile.SaveAs(Server.MapPath("minbil/site/upload/") + urlFile.PostedFile.FileName);
                result.Text = "File <b></b> uploaded successfully";
            }
            catch (Exception error)
            {
                result.Text = "Error saving <b>" + error.ToString() + " ";
            }
Avatar billede snepnet Nybegynder
09. maj 2006 - 11:44 #6
Nu ved jeg ikke hvor din folder er i forhold til den side der eksekverer den kode du har vist - men du kan give den en relativ url - ligesom hvis det havde være et link.
MapPath returnerer dig så den fysiske sti i filsystemet.
Jeg synes du skal benytte
Path.Combine(resultatetafMapPath, filename) til at danne den endelige sti... Det er sådan en lækker lille klasse ;o)
Mvh
Avatar billede bakkers Nybegynder
09. maj 2006 - 13:20 #7
Ok, det prøver jeg at kigge på i aften.
Avatar billede bakkers Nybegynder
09. maj 2006 - 17:39 #8
Nu fandt jeg fejlen.

urlFile.PostedFile.SaveAs(Server.MapPath("\\minbil\\site\\upload\\") + urlFile.PostedFile.FileName);

Hvor jeg før skrev denne linie for at gemme filen har jeg ændret det til

urlFile.SaveAs(Server.MapPath("\\minbil\\site\\upload\\") + urlFile.FileName);

Det gjorde at det virkede.
Avatar billede snepnet Nybegynder
09. maj 2006 - 18:15 #9
Jeg synes fortsat at du skal angive din sti som en virtuel sti som metoden fordrer...

Det er rigtigt at du kan benytte \\ - men den eneste grund til at det er muligt er, at de bliver ændret til / af en lille utilityklasse i forbindelse med eksekveringen.
Det er ikke fordi det er særlig dyrt som sådan, men der er ingen grund til at camouflere en virtuel sti som en fysisk - når det eneste du får ud af det er, at der kører lidt mere kode i baggrunden.

Hvor ligger din folder minbil - i forhold til der hvor filen hvor koden står i ligger?

Mvh
Avatar billede bakkers Nybegynder
10. maj 2006 - 11:15 #10
minbil folderen er roden af mit websted altså lagt i www folderen på min iis server.
Avatar billede snepnet Nybegynder
10. maj 2006 - 12:18 #11
Du kan starte din path i root af dit virtual directory ved at benytte ~
Så Server.MapPath("~/minbil/site/upload/" vil give dig stien - f.eks. sådan her:
c:\inetpub\wwwroot\yoursite\minbil\site\upload
Mvh
Avatar billede bakkers Nybegynder
11. maj 2006 - 14:51 #12
ok det vil jeg lige prøve at gøre.
Avatar billede bakkers Nybegynder
16. maj 2006 - 13:51 #13
Jeg lukker for spørgsmålet da problemet er løst.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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