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