13. november 2005 - 14:21Der er
19 kommentarer og 1 løsning
Kan ikke slette billeder på server
Jeg har lavet en galleri side hvor man kan uploade og se forskellige billeder. Mit problem er at hvis en besøgende har fået vist et billede kan det ikke slettes før efter ca 15 minutter tror jeg. Jeg bruger et script til at genenere thumbs ud fra hvilke billeder der ligger i mappen, så stierne bliver altså ikke gemt i en db.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
jeg er ret ny til .net så jeg kan ik lige gennemskue hvordan :) Kan du eventuelt komme med et eksempel, eller måske rette scriptet så det virker på den måde du har beskrevet..
ups - du må hellere kalde billedet det samme som før :o) System.IO.FileStream fs = new System.IO.FileStream(s, FileMode.Open); System.Drawing.Image currentImage = System.Drawing.Image.FromStream(fs); fs.Close();
sorry ... der kom lige et spisebord ind ad døren ?!?
prøv eksplicit at give asp.net brugeren adgang til at læse i den folder du har billederne liggende i. og... så skal du nok flytte fs.Close() ned til der hvor du er færdig med at arbejde med billedet.
Fandt lige ud af at det kører online altså genereringen. også med filestream. Men jeg kan stadig ikke slette billederne. kan jeg gøre sådan at aspx siden det ligger på ikke bliver gemt i cache?
øh ja ... det kan du sådan set godt, men umiddelbart kan jeg ikke se hvilken forskel det skulle gøre?
du må lige finde ud af hvor problemet ligger, og hvornår du ikke kan slette filen.
prøv at se det er:
string path = <somePath>; Image im = Image.FromFile(s); // her kan jeg ikke slette billedet im.Dispose(); // her kan jeg godt slette billedet
eller ...
FileStream fs = new FileStream(s, FileMode.Open); Image currentImage = Image.FromStream(fs); // her kan jeg ikke slette billedet fs.Close(); // her kan jeg godt slette billedet
Du må prøve at debugge, og så stoppe din eksekvering udvalgte steder, så du kan se hvornår filen er låst, og hvornår den ikke er.
Jeg prøver ikke at slette programmet fra hjemmesiden da jeg ikke har kunne løse det her problem. Det er når jeg sletter via ftp, eller igennem dreamweaver jeg ikke kan slette dem.
jeg tror måske problemet opstår fordi de små thumb billeder bliver genereret på en getthumb underside. Billederne hives ind i oversigten således:
public void Page_Load(Object sender, EventArgs e) {
// Read in the image filename to create a thumbnail of string imageUrl = Request.QueryString["img"];
// Read in the width and height int imageHeight = Convert.ToInt32(Request.QueryString["h"]); int imageWidth = Convert.ToInt32(Request.QueryString["w"]);
//Make sure that the image URL doesn't contain any /'s or \'s //If imageUrl.IndexOf("/") >= 0 Or imageUrl.IndexOf("\") >= 0 then // We found a / or \ // Response.End() // End If
//Add on the appropriate directory //imageUrl = imageUrl
//Do we need to create a thumbnail? Response.ContentType = "image/jpeg"; if ((imageHeight > 0) && (imageWidth > 0)) { Bitmap bitmap1 = new Bitmap(imageWidth, imageHeight, fullSizeImg.PixelFormat);
(du kan eventuelt nøjes med ovenstående indtil videre og så droppe det scenarie hvor den ikke genererer en thumbnail.... så er det lidt mere entydigt hvad der sker).
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.