Avatar billede Jim Rasmussen Novice
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
Avatar billede Syska Mester
26. juli 2010 - 00:15 #1
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
Avatar billede Jim Rasmussen Novice
26. juli 2010 - 00:46 #2
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 (:
Avatar billede Syska Mester
26. juli 2010 - 00:55 #3
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
Avatar billede Jim Rasmussen Novice
26. juli 2010 - 01:03 #4
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?
Avatar billede Jim Rasmussen Novice
26. juli 2010 - 01:26 #5
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
Avatar billede Syska Mester
26. juli 2010 - 02:41 #6
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.
Avatar billede Jim Rasmussen Novice
26. juli 2010 - 15:19 #7
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 (:
Avatar billede Jim Rasmussen Novice
26. juli 2010 - 18:32 #8
fandt selv svaret
Avatar billede Syska Mester
26. juli 2010 - 23:54 #9
Hvad var så fejlen ?

En stream er ingen sti.
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