Function UploadFil(ByVal fileUpload1 As System.Web.HttpPostedFile, ByVal OutputPath As String) As String
If Not (fileUpload1 Is Nothing) Then If File.Exists(fileUpload1.FileName) Then Dim filename As String = Path.GetFileNameWithoutExtension(fileUpload1.FileName) Dim counter As Integer = 0 Dim strFileName As String = String.Empty
While (True)
counter += 1 strFileName = filename & "_" & counter.ToString() + Path.GetExtension(fileUpload1.FileName) If File.Exists(OutputPath & strFileName) = False Then Exit While End If
Hvorfor gemmer du filen først? Det er jo fuldstændigt unødvendigt, når den alligevel skal slettes igen. Du kan loade et Bitmap object direkte fra en FileUpload kontrol.
Bitmap theImage = new Bitmap(fileUpload1.FileContent);
Beklager, at jeg skrev det med C#. Jeg blev lidt for ivrigt. Det skal selvfølgelig være.
Dim bm As Bitmap = System.Drawing.Image.FromFile(fileUpload1.FileContent)
Med hensyn til kvaliteten, så er det InterpolationMode propertien du skal bruge. SmoothingMode har ingen effekt når du tegner billeder, da det er en effekt på vektorgrafik. Jeg er ikke helt sikker på, hvilken effekt PixelOffsetMode propertien har. Jeg tror ikke den betyder så meget, når du gør billeder mindre.
Prøv at eksperimentere mde InterpolationMode propertien.
Har problemer med at lave thumbnails ud af billeder på over ca. 300kb og at slette dem bagefter pga. filen bruges af en anden proces ?
Ville være fedt, hvis du ville kikke på det :)
Fejl ved slet ----------------------
[IOException: The process cannot access the file 'd:\web\lundoconsulting.dk\www\Images\CD_Design_4.jpg' because it is being used by another process.] System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +7712640 System.IO.File.Delete(String path) +7572872 Admin_DMMD.Page_Load(Object sender, EventArgs e) +704 System.Web.UI.Control.OnLoad(EventArgs e) +99 System.Web.UI.Control.LoadRecursive() +50 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
Thumbnails function ----------------------
Sub GenerateImageLow(ByVal strFilepath As String, ByVal strFilename As String, ByVal newHeight As Integer)
Dim bm As Bitmap = System.Drawing.Image.FromFile(strFilepath & strFilename.Replace(" ", "_").Replace("å", "aa").Replace("æ", "ae").Replace("ø", "oe").Replace("-", "_"))
Dim newWidth As Integer = (newHeight / bm.Height) * bm.Width
Dim resized As Bitmap = New Bitmap(newWidth, newHeight)
Jeg kan ikke ud fra denne Sub alene se, hvad der er galt. Har du mulighed for at lave et lille test-projekt, hvor fejlen opstår, og sende den til "exp snabel-a aaberg punktum cc"? sÅ skal jeg se om jeg kan finde fejlen.
Ja, lidt. Men jeg er ikke kommet til en konklusion endnu. Jeg tænkte at jeg skulle prøve at uploade det til mit webhotel, for at se hvordan det kører der. Jeg ser ikke noget i koden der burde give den fejl du beskriver, og det virker jo også fint lokalt.
Det eneste jeg kan komme i tanke om, er at det kan være et rettighedsproblem på serveren.
Men jeg skal vende tilbage efter jeg har prøvet at køre det på webhotellet.
Har haft en del problemer med at curanet ikke rigtig gør de ting jeg beder dem om, som fx. jeg opretter domain med webhotel og så redirecter den til en gammel server og ikke den nye og at jeg ikke har skrive rettighedder i min egen mappe på serveren med det samme.
Hvis det virker på din server, må jeg lige have en snak med Curanets support igen igen ;P
Har lige fundet ud af det er lidt random hvornår den løber ud for memory på serveren, fordi nu kunne jeg godt uploade en fil på 1800kb ;S .. Men får så stadig den her fejl når jeg vil slette den lige bagefter: The process cannot access the file 'd:\web\lundoconsulting.dk\www\Images\Torn_1.jpg' because it is being used by another process.
Nu har jeg prøvet at køre det på mit webhotel, og der ser det ud til at virke helt fint.
At du får en fejl når du prøver at slette filen lige efter den er blevet oprettet, kan være fordi styresystemet ikke har givet slip på filen. Det kan også være en virusscanner der ikke er færdig med at scanne filen.
Men uanset, så lyder det som en forkert fremgangsmåde, at oprette en fil, for derefter at slette den igen. Det kan være du burde bruge en generic handler i stedet for. Hvad er det egentlig præcist du prøver at gøre?
Nu forstår jeg. Nej, så skal du ikke bruge en generic handler.
Hvis du har adgang til en database, kan du eventuelt overveje at gemme billederne der i stedet for på filsystemet. Dette vil fjerne denne slags problemer.
Uh, der kommer vi lidt uden for det jeg er god til. Jeg har aldrig været en ørn til javascript og css. Her tror jeg du vil få mere hjælp ved at spørge i "(D)HTML" kategorien.
Synes godt om
Ny brugerNybegynder
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.