26. juli 2010 - 00:06
Der er
8 kommentarer og 1 løsning
Billed skalering med asp.net c#
using System.IO; using System.Drawing; using System.Drawing.Imaging; public class ReSizeImage { public string GenerateImage(Stream ImagePath, Stream ImagePathTo, int NewWidth) { string OldImage = ImagePath.ToString(); string NewImage = ImagePathTo.ToString(); System.Drawing.Image bm = System.Drawing.Image.FromFile(OldImage); int NewHeight = bm.Height * NewWidth / bm.Width; Bitmap Resized = new Bitmap(NewWidth, NewHeight); Graphics g = Graphics.FromImage(Resized); g.DrawImage(bm, new Rectangle(0, 0, Resized.Width, Resized.Height), 0, 0, bm.Width, bm.Height, GraphicsUnit.Pixel); bm.Dispose(); g.Dispose(); Resized.Save(ImagePathTo, ImageFormat.Jpeg); return Path.GetFileName(NewImage); } } Ovenfor er den kode jeg bruger til at resize mit uploadede billed automatisk. Men under udførelsen af "Resized.Save(ImagePathTo, ImageFormat.Jpeg);" kommer der en fejl, den siger at adgang til stien ... nægtet? nogen ideer om hvad problemet kan være!? koden bliver kørt lokalt fra visual studio. Neden for er Exeption.Message meddelelsen ----!!---- Access to the path 'F:\My Dropbox\Visual Studio 2010\WebSites\Billedupload\Files\small' is denied. Håber at der er en der kan svaret på min gåde (: Syns selv den er lidt svær at gennemskue, så 200 point burde kunne gøre det
Annonceindlæg fra Cepheo
Simpelt ... du har ikke adgang. Nu siger du det køres igennem VS? Er det så Cassini eller IIS ? IIS skal have flere rettigheden, brugeren kan jeg ikke huske hvad hedder men kig på hvad bruger din AppPool bruger. Jeg er ikke sikker på hvad Cassini kører under, men du kan starte med at give "Everyone" full access for at prøve det af. mvh
ehm, der må jeg nok melde pas, hvor ser jeg om det er iis eller cassini? er ikke så kendt igen i vs hvad angår instillingerne (:
Hvis du bare trykker "Run" så er det helt sikkert Cassini. Men prøv at kigge på mappen hvor du prøver at gemme billedet og tildel alle rettigheder til brugeren "Everyone". mvh
normalt bruger jeg bare f5, og så køre den debug i baggrunden. altså mappen når jeg er i windows eller når jeg er i vs?
hmm nu har jeg været inde i mappens sikkerheds indstillinger i windows, og alt står til at have fuld kontrol over mappen, det virker stadig ikke
Prøv med: File.Create(@"C:\temp\file"); samme mappe etc. Ellers prøv i din temp mappe på computeren, end hvad den er sat til, der burde alle brugere have adgang.
Intet hjalp ret meget, fandt aldrig den egentlig fejl, men ved at bruge strings i stedet for streamWriter og Reader virkede det? Men hvad er egentlig foreskellen? Hvorfor bruger man Streams når man bare kan bruge en string med stien i? Det er måske et dumt spørgsmål? :b men har kun arbejdet med .net i 1/2 år nu (:
Hvad var så fejlen ? En stream er ingen sti.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.