Ciao a tutti, ho ovviamente un problema.
Ho fatto un sito con la gestione dei dati online, tra queste funzioni c'è anche l'upload di immagini.
Per dare meno noie possibili e meno operazioni da far fare al mio cliente ho messo uno script che mi ridimensiona automaticamente l'immagine in base alle necessità.
Il mio problema è che spesso non riesco a cancellare delle immagini, non ho mai trovato una soluzione finchè non mi è venuto il dubbio: non è che lo script che ridimensiona le immagini tiene aperto il file e quindi non è cancellabile?
infatti alcune immagini da non cancellabili sono diventate poi tali, quindi l'unica cosa che mi vien da pensare è che sia a causa dello script perchè in quel momento qualcuno sta visualizzando l'immagine!

pensate che la mia teoria sia corretta? è possibile risolvere il problema?
questo è lo script che modifica l'immagine:

codice:
<%@ Page Language="C#" Debug="true" %>

<%@ import Namespace="System"%>
<%@ import Namespace="System.IO"%>
<%@ import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.Text.RegularExpressions" %>


<script Language="C#" runat="server">
void Page_Load(Object sender, EventArgs e){

int microWidth = 80;
int microHeight = 60;
int miniWidth = 160;
int miniHeight = 120;
int rndWidth = 130;
int rndHeight = 98;
int galWidth = 530;
int galHeight = 398;
string strFileName = "";
string destinazione = Server.MapPath("./public/");

double rThumbnailWidth = 320.0;
double rThumbnailHeight = 240.0;
double rThumbnailTemp = 0.0;

System.Drawing.Image orgImage;

	if (Request.QueryString["src"] != "")
	{
		
		strFileName = Convert.ToString(Request.QueryString["src"]);
		
		
		if (strFileName != ""){
			orgImage = System.Drawing.Image.FromFile(destinazione + strFileName + ".jpg");
			
			if (Request.QueryString["size"] == "mini"){
				rThumbnailWidth = miniWidth;
				rThumbnailHeight = miniHeight;
			}
			
			if (Request.QueryString["size"] == "micro"){
				rThumbnailWidth = microWidth;
				rThumbnailHeight = microHeight;
			}
			
			if (Request.QueryString["size"] == "gallery"){
				rThumbnailWidth = galWidth;
				rThumbnailHeight = galHeight;
			}
			
			if (Request.QueryString["size"] == "rnd"){
				rThumbnailWidth = rndWidth;
				rThumbnailHeight = rndHeight;
			}
			
			// Ridimensionamento per immagini verticali
			if  (orgImage.Height > orgImage.Width) {
				rThumbnailTemp = rThumbnailHeight;
				rThumbnailHeight = rThumbnailWidth;
				rThumbnailWidth = rThumbnailTemp; 
			}


			using(Bitmap bitmap = new Bitmap(orgImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight)))
			{
				Response.ContentType = orgImage.RawFormat.ToString();
				Response.Clear();
				Response.BufferOutput = true;
				Response.AddHeader("Content-Disposition", "filename=" + strFileName);
				bitmap.Save(Response.OutputStream, orgImage.RawFormat);
				Response.Flush();
			}
		}
	}
}
		
</script>
Grazie per l'attenzione