Avatar billede websam Nybegynder
21. maj 2005 - 13:49 Der er 10 kommentarer og
1 løsning

Permossion på mappe ?

Hejsa,

Jeg sidder og roder med at lave opload og resize af billeder men når jeg forsøger at gemme får jeg denne fejl :

System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+. at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams) at System.Drawing.Image.Save(String filename, ImageFormat format) at try2try.Upload.Button1_Click(Object sender, EventArgs e)

Dette har jeg læst mig til skulle være fordi der ikke er de rigtige rettigheder på mappen, så jeg gav aspnet og i_user fuld adgang men stadig får jeg den samme fejl.

Nogen ideer ?

/Websam
Avatar billede snepnet Nybegynder
21. maj 2005 - 13:57 #1
fejlen kan vist skyldes lidt forskellige ting ... hvordan ser din kode ud ?
har du eventuelt prøvet forskellige typer af billeder ?
mvh
Avatar billede websam Nybegynder
21. maj 2005 - 14:36 #2
Jeg har lige prøvet en simpel opload function og det virker fint så det første kode har sikkert været noget rod. Hvis du ligger inde med noget brugbart hvor jeg kan uploade et billede, resize det til 2 størrelser og gemme det i en mappe eller har link til noget brugbart så er det mere end velkommen :o)

/Websam
Avatar billede websam Nybegynder
21. maj 2005 - 14:39 #3
Min upload function der virker ser således ud :

Public Sub Button1_Click(ByVal [Source] As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim strFileName As String

        If Not (txtFile.PostedFile Is Nothing) Then
            strFileName = txtFile.PostedFile.FileName
            strFileName = strFileName.Substring((strFileName.LastIndexOf("\") + 1))
            Try
                txtFile.PostedFile.SaveAs(("C:\Files\Products\" + strFileName))
                txtMsg.InnerHtml = "Uploaded successfully: C:\Files\Products\" + strFileName + "<br>"
            Catch err As Exception
                txtMsg.InnerHtml = "Error Uploading C:\Files\Products\" + strFileName + "<br> " + err.Message
            End Try
        End If
        If IsPostBack Then
            Dim billed As String
            billed = "<img src=../files/products/" + strFileName + ">"
            Label1.Text = billed
        End If
    End Sub

Men her mangler der jo en del for at der kan resizes :o)

/Websam
Avatar billede snepnet Nybegynder
21. maj 2005 - 14:39 #4
det er blevet besvare adskillige gange herude mener jeg - men søgesystemet er jo som det nu engang er .... prøver lige om jeg kan finde noget af det.
mvh
Avatar billede snepnet Nybegynder
21. maj 2005 - 14:42 #5
Avatar billede websam Nybegynder
21. maj 2005 - 14:43 #6
Ja men de eksempler jeg har prøvet herfra er kommet med ovenstående fejl ?!?

/Websam
Avatar billede websam Nybegynder
21. maj 2005 - 14:46 #7
Hov jeg havde overset cyberfessors eksempel det prøver jeg lige af :o)

/Websam
Avatar billede snepnet Nybegynder
21. maj 2005 - 14:54 #8
søg lidt herude ... der er mange eksempler.
http://eksperten.dk/spm/457133

også andre steder på nettet : http://www.411asp.net/home/tutorial/howto/graphics/images
Avatar billede snepnet Nybegynder
21. maj 2005 - 15:02 #9
og her :
http://www.eksperten.dk/spm/602664
(synes nok jeg selv har været blandet ind i den slags tidligere :o)
Avatar billede websam Nybegynder
21. maj 2005 - 19:49 #10
Ok jeg har nu rodet lidt med det og til resize bruger jeg denne :

Private Shared Function Resize(ByVal b As Bitmap, ByVal MaxHeight As Integer, ByVal MaxWidth As Integer) As Bitmap
        Dim nWidth As Integer = b.Width
        Dim nHeight As Integer = b.Height
        If nHeight > MaxHeight Then
            nWidth = CInt(CDbl(b.Width) / CDbl(b.Height) * CDbl(MaxHeight))
            nHeight = MaxHeight
        End If
        If nWidth > MaxWidth Then
            nWidth = MaxWidth
            nHeight = CInt(CDbl(b.Height) / CDbl(b.Width) * CDbl(MaxWidth))
        End If
        Dim bTemp As Bitmap = CType(b.Clone(), Bitmap)
        b = New Bitmap(nWidth, nHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb)
        Dim nXFactor As Double = CDbl(bTemp.Width) / CDbl(nWidth)
        Dim nYFactor As Double = CDbl(bTemp.Height) / CDbl(nHeight)
        Dim x As Integer

        While x < b.Width
            Dim y As Integer

            While y < b.Height
                b.SetPixel(x, y, bTemp.GetPixel(CInt(Math.Floor((x * nXFactor))), CInt(Math.Floor((y * nYFactor)))))
            End While
        End While
        Return b
    End Function 'Resize

Og til upload bruger jeg denne :

Public Sub Button1_Click(ByVal [Source] As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim strFileName As String

        If Not (txtFile.PostedFile Is Nothing) Then
            strFileName = txtFile.PostedFile.FileName
            strFileName = strFileName.Substring(strFileName.LastIndexOf("\") + 1)
            Try
                txtFile.PostedFile.SaveAs("C:\Inetpub\wwwroot\try2try\Files\Products\" + strFileName)

                Dim image As New System.Drawing.Bitmap(txtFile.PostedFile.InputStream)
                Dim format As System.Drawing.Imaging.ImageFormat = image.RawFormat
                Dim billedeBitmap As New Bitmap("C:\Inetpub\wwwroot\try2try\Files\Products\" + strFileName)
                Dim billedeTmp As Bitmap = Resize(billedeBitmap, 150, 150)
                billedeBitmap.Dispose()
                GC.Collect()
                billedeTmp.Save("C:\Inetpub\wwwroot\try2try\Files\Products\Thumbs\" + strFileName, format.Jpeg)

                txtMsg.InnerHtml = "Uploaded successfully: C:\Inetpub\wwwroot\try2try\Files\Products\" + strFileName + "<br>"
            Catch err As Exception
                txtMsg.InnerHtml = "Error Uploading C:\Inetpub\wwwroot\try2try\Files\Products\" + strFileName + "<br> " + err.Message
            End Try
        End If
        If IsPostBack Then
            Dim billed As String
            billed = "<img src=../files/products/" + strFileName + ">"
            Label1.Text = billed
        End If
    End Sub

Men når jeg forsøger at uploade hænger browseren og jeg kan kun afslutte ved at lukke processen ned windows jobliste, kan du se om jeg gør noget forkert ?

/Websam
Avatar billede websam Nybegynder
22. maj 2005 - 20:06 #11
Hey jeg fandt en løsning på microbløds hjemmeside så nu kan jeg både resize og gemme billeder, cool :o)

Så vi deler lige point her :o)
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