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:
Grazie per l'attenzionecodice:<%@ 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>

Rispondi quotando