[ASP.NET/VB] Bestand wordt gelocked na upload.

Pagina: 1
Acties:

  • paragon
  • Registratie: April 2000
  • Laatst online: 08:05
Ik heb een simpel stuk code dat gebruikt wordt voor het uploaden van foto's naar een webserver. Dit uploaden werkt naar behoren alleen als ik weer een foto wil deleten dan kan dat niet omdat deze gebruikt wordt door een ander proces. Op de foto pagina worden de foto's getoond met behulp van een resize script dus ik dacht misschien worden ze hierdoor gelocked, maar ook zonder dit script kan ik ze eigenlijk nooit deleten. Ja soms kan het dus wel. Het is me al 1x gelukt om met firefox een foto te deleten en al 2x met Opera van mijn m600i mobiele telefoon. Het is dus ook niet zo dat het bestand na het uploaden voor even gelocked is, want een foto die ik gisteren via mijn mobiel had geupload kon ik net niet deleten via firefox. Probeerde het daarna met m'n telefoon en toen lukte het weer wel :S Ik kan hier eigenlijk niets van terug vinden via google. En wat ik heb gevonden heb ik al geprobeerd, nl zonder resize script.

De code die ik gebruik voor het deleten van de file is erg simpel
code:
1
2
sFoto = Server.MapPath("../ArtImages/" + fID + "/" + sName)
File.Delete(sFoto)

Als ik een response.write doe van sFoto verschijnt ook het juiste pad dus aan fouten in fID en sName ligt het niet.

And de rechten van ASP.NET ligt het ook niet want het is wel eens gelukt dus en volgens mij moet je dan zoiets krijgen als een access violation error :S

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Hoe doe je de upload ?
Ik vermoed dat het asp.net process je foto gelocked houdt, omdat je iets niet mooi afgesloten / gedisposed hebt.

https://fgheysels.github.io/


  • paragon
  • Registratie: April 2000
  • Laatst online: 08:05
het kocken gebeurt waarschojnlijk toch door het resize script. ik heb het nog niet terug gezet na het testen gisteren en vsndaag werkt het gewoon. ik zal dat resize script vanavond maar posten alleen klopt het topic titel dan niet meer.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:48

gorgi_19

Kruimeltjes zijn weer op :9

paragon schreef op vrijdag 02 maart 2007 @ 14:20:
het kocken gebeurt waarschojnlijk toch door het resize script. ik heb het nog niet terug gezet na het testen gisteren en vsndaag werkt het gewoon. ik zal dat resize script vanavond maar posten alleen klopt het topic titel dan niet meer.
Als je een resizescript gebruik, zal je ws de standaard van MS gebruiken voor het maken van Thumbnails. Deze returned een stream / image / whatever. Deze moet je expliciet afsluiten en niet verder in de 'properties' gaan :) Anders blijft de boel inderdaad locked :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • paragon
  • Registratie: April 2000
  • Laatst online: 08:05
Je hebt het waarschijnlijk over de volgende regel:
code:
1
Thumbnail.Save(Response.Outputstream, imageformat.jpeg)


Dit is het geheel:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim i As System.Drawing.Image
Dim iWidth As Integer
Dim iHeight As Integer
Dim strFilename As String
  
iHeight = 100
iWidth = 100
strFilename = Server.Mappath(request.querystring("src"))
i = System.Drawing.Image.FromFile(strFilename)
Dim Thumbnail as New system.drawing.bitmap(iWidth, iHeight, pixelformat.format24bpprgb)
Dim g as graphics = graphics.fromimage(Thumbnail)

If (i.width/i.height)<(iWidth/iHeight) Then
  'portrait image processing
  g.drawimage(i,New rectangle(0,0,iWidth, iHeight), New rectangle(0,0,i.width,i.width/iWidth*iHeight), GraphicsUnit.Pixel)
Else
  'landscape image processing
  g.drawimage(i,New rectangle(0,0,iWidth, iHeight), New rectangle(0,0,i.height/iHeight*iWidth,i.height), GraphicsUnit.Pixel)
End If

Response.Contenttype="image/jpeg"
Thumbnail.Save(Response.Outputstream, imageformat.jpeg)
Thumbnail.Dispose()

  • paragon
  • Registratie: April 2000
  • Laatst online: 08:05
Hmm dat krijg je dus als je code copied en paste.

i.Dispose()
Pagina: 1