Come promesso eccoti qui il codice :
Codice PHP:
<%@ Page Language="C#" LCID=1040 Debug="true" Trace="false" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Web.UI.HtmlControls" %>
<script Language="C#" runat="server">
void Page_Load(object sender, System.EventArgs e)
{
titletext2.Text = titletext.Text = ""Upload & Resample On-Fly, delle immagini inviate, su di una cartella del Server" [v.1.0.0]";
Status.Text += "
<center><pre>Coded by <a href=\"http://forum.html.it/forum/member.php?s=&action=getinfo&userid=83362\" title=\"R.B.Riddick\" target=\"blank\">R.B.Riddick ©</a>
on
<a href=\"http://www.html.it/\" title=\"www.html.it\" target=\"blank\">[url]www.html.it[/url]</a></pre></center>";
Status.Text += "
<a href=\"http://validator.w3.org/check?uri=referer\" target=\"blank\"><img src=\"http://www.w3.org/Icons/valid-html401\" alt=\"Valid HTML 4.01 Transitional\" height=\"31\" width=\"88\" border=\"0\"></a></p>";
} // void Page_Load(object sender, System.EventArgs e)
bool IsImage(string fileName)
{
string ext = Path.GetExtension(fileName).ToLower();
bool imageFlag = false;
if (ext != null)
{
switch (ext)
{
case ".emf" : // Enhanced Windows metafile image format
case ".exif" : // Exchangable Image Format
case ".ico" : // Windows icon image format (extension .ico)
case ".wmf" : // Windows metafile image format (extension .wmf)
case ".png" : // Specifies the W3C Portable Network Graphics image format (extension .png)
case ".gif" : // Graphics Interchange Format image format (extension .gif)
case ".bmp" : //Bitmap image format (extension .bmp)
case ".tiff" : // Tag Image File Format (extension .tif)
case ".tif" : // Tag Image File Format (extension .tif)
case ".jpeg" : // Joint Photographic Experts Group image format (extensions .jpg, .jpeg)
case ".jpg" : imageFlag = true; break; // Joint Photographic Experts Group image format (extensions .jpg, .jpeg)
default: imageFlag = false; break; // Not a supported file type.
} // switch (ext)
} // if (ext != null)
else
imageFlag = false;
return imageFlag;
} // bool IsImage(string fileName)
void UploadAndResizeAnImage(HttpPostedFile file, double newWidth, double newHeight, string virPath, bool overwrite)
{
string destPath = ".";
double ThumbnailWidth = 64.0;
double ThumbnailHeight = 64.0;
bool owr = false;
if (virPath != "") destPath = virPath;
if (newWidth > 0) ThumbnailWidth = newWidth;
if (newHeight > 0) ThumbnailHeight = newHeight;
if (overwrite)
owr = true;
else
owr = false;
int pathCheck = (destPath.Substring(destPath.LastIndexOf('/') + 1)).Length;
if (pathCheck > 0) destPath += "/";
string fileName = Path.GetFileName(file.FileName);
double orgImgWidth = 0.0;
double orgImgHeight = 0.0;
double rThumbnailWidth = 0.0;
double rThumbnailHeight = 0.0;
destPath = Server.MapPath(destPath);
if ( (!File.Exists(destPath + fileName)) && (fileName.Length != 0) || (owr))
{
if (!IsImage(fileName))
{
if (fileName.Length != 0)
Status.Text += "<span style=\"color:Red;\">File '" + fileName + "' is not a valid image format. Upload... Aborted.</span>
";
return;
} // if (!IsImage(fileName))
using(System.Drawing.Image image = System.Drawing.Image.FromStream(file.InputStream))
{
rThumbnailWidth = ThumbnailWidth;
rThumbnailHeight = ThumbnailHeight;
orgImgWidth = image.Width;
orgImgHeight = image.Height;
// Se l'immagine è più piccola del Thumbnail forziamo le dimensioni di
// quest'ultimo alle dimensioni dell'immagine.
if (orgImgWidth < rThumbnailWidth) rThumbnailWidth = image.Width;
if (orgImgHeight < rThumbnailHeight) rThumbnailHeight = image.Height;
// Se le dimensioni dell'immagine e del Thumbnail corrispondono non facciamo nulla.
// quindi se l'immagine è quadrata...
if (image.Width != image.Height)
{
// Se l'immagine non è quadrata
// continuiamo a fare i nostri controlli per calcolarne le
// giuste dimensioni e quindi creare la nostra nuova immagine con
// l'aspectratio corretto.
// Se l'immagine è più larga che alta
if (image.Width > image.Height)
{
// L > H => L = tL
// La larghezza del TN sarà quella da noi stabilita
// quindi dobbiamo solo assegnarla.
rThumbnailWidth = rThumbnailWidth;
// L'altezza del TN invece dovrà essere ricalcolata
// in proporzione alla larghezza dell'immagine originale.
// L > H => tH = (H * tL)/ L
rThumbnailHeight = (double)((image.Height * rThumbnailWidth) / image.Width);
} // if (tmpImage.Width > tmpImage.Height)
else
{
// Altrimenti se l'immagine è più alta
if (image.Width < image.Height)
{
// L < H => H = tH
// L'altezza del TN sarà quella da noi stabilita
// quindi dobbiamo solo assegnarla.
rThumbnailHeight = rThumbnailHeight;
// La larghezza del TN invece dovrà essere ricalcolata
// in proporzione alla altezza dell'immagine originale.
// L < H => tL = (L * tH)/ H
rThumbnailWidth = (double)((image.Width * rThumbnailHeight) / image.Height);
} // if (image.Width < image.Height)
} // else
} // if (image.Width != image.Height)
using(Bitmap bitmap = new Bitmap(image, (int)(rThumbnailWidth), (int)(rThumbnailHeight)))
{
string message = "Uploaded";
if (File.Exists(destPath + fileName) && (owr)) message = "OverWritted";
bitmap.Save(destPath + fileName, image.RawFormat);
Status.Text += "<span style=\"color:Green;\">File '" + fileName + " @ [" + (int)(orgImgWidth) + "px X " + (int)(orgImgHeight) + "px]' " + message + " with this new size [" + (int)(rThumbnailWidth) + "px X " + (int)(rThumbnailHeight) + "px]</span>
";
} // using(Bitmap bitmap = new Bitmap(image, (int)(rThumbnailWidth), (int)(rThumbnailHeight)))
} // using(System.Drawing.Image image = System.Drawing.Image.FromFile(file))
} // if ( (!File.Exists(destPath + fileName)) && (fileName != "") || (owr))
else
{
if (File.Exists(destPath + fileName) && (!owr))
Status.Text += "<span style=\"color:Red;\">Error : The file \"<u>[b][i]" + fileName + "[/i][/b]</u>\" already exist... Upload Aborted.</span>
";
}
} // void UploadImage(HttpPostedFile file)
protected void SubmitButton_Click(Object sender, EventArgs e)
{
HttpFileCollection uploadedFiles = Request.Files;
Status.Text = "";
for (int i = 0; i < uploadedFiles.Count; i ++)
{
// Qui sotto definisci le dimensioni che vuoi, la cartella di destinazione
// e se l'applicazione deve sovrascrivere o no i files preesistenti.
//
// UploadAndResizeAnImage(HttpPostedFile file, double newWidth, double newHeight, string virPath, bool overwrite)
//
// Quindi in se scrivo come qui sotto :
UploadAndResizeAnImage(uploadedFiles[i], 640.0, 480.0, "./public/", false);
// significa che voglio che ogni immagine inviata (uploadedFiles[i])
// venga ridimensionata a 640x480 (tenendo conto però delle proporzioni originali)
// nella cartella "./public/" (che dovrà avere i permessi di scrittura)
// e se il file esiste già non deve essere sovrascritto (overwrite = false).
// Chiaro? Più di così ;)
}
Status.Text += "
<center><pre>Coded by <a href=\"http://forum.html.it/forum/member.php?s=&action=getinfo&userid=83362\" title=\"R.B.Riddick\" target=\"blank\">R.B.Riddick ©</a>
on
<a href=\"http://www.html.it/\" title=\"www.html.it\" target=\"blank\">[url]www.html.it[/url]</a></pre></center>";
Status.Text += "
<a href=\"http://validator.w3.org/check?uri=referer\" target=\"blank\"><img src=\"http://www.w3.org/Icons/valid-html401\" alt=\"Valid HTML 4.01 Transitional\" height=\"31\" width=\"88\" border=\"0\"></a></p>";
} // protected void SubmitButton_Click(Object sender, EventArgs e)
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<title><asp:Literal id="titletext" runat="server"/></title>
<style type="text/css">
body
{
background:#2288DD;
}
a:link
{
color: Blue;
text-decoration: none;
}
a:active
{
color: Blue;
text-decoration: none;
}
a:visited
{
color: Blue;
text-decoration: none;
}
a:hover
{
color: Blue;
font-weight: bold;
text-decoration: none;
}
</style>
</head>
<body>
<div align="center">
<h2><asp:Literal id="titletext2" runat="server"/></h2>
<form name="inviafile" id="inviafile" enctype="multipart/form-data" runat="server">
Select File1:
<input id="File1" type="file" runat="Server"/>
Select File2:
<input id="File2" type="file" runat="Server"/>
Select File3:
<input id="File3" type="file" runat="Server"/>
Select File4:
<input id="File4" type="file" runat="Server"/>
Select File5:
<input id="File5" type="file" runat="Server"/>
Select File6:
<input id="File6" type="file" runat="Server"/>
Select File7:
<input id="File7" type="file" runat="Server"/>
Select File8:
<input id="File8" type="file" runat="Server"/>
Select File9:
<input id="File9" type="file" runat="Server"/>
Select File10:
<input id="File10" type="file" runat="Server"/>
Select File11:
<input id="File11" type="file" runat="Server"/>
Select File12:
<input id="File12" type="file" runat="Server"/>
Select File13:
<input id="File13" type="file" runat="Server"/>
Select File14:
<input id="File14" type="file" runat="Server"/>
Select File15:
<input id="File15" type="file" runat="Server"/>
<div align="center"><input id="Submit1" type="submit" value="Upload Files" runat="Server" onserverclick="SubmitButton_Click"/></div>
<asp:Label id="Status" runat="server"></asp:Label>
</form>
</div>
</body>
</html>
dai un'occhiata che ti ho scritto nella funzione
"protected void SubmitButton_Click(Object sender, EventArgs e)"
ci sono dei commenti che penso bastino per farti capire cosa devi fare.
Se vuoi fare l'upload di un solo file basta che cancelli questa parte
di codice
Codice PHP:
Select File2:
<input id="File2" type="file" runat="Server"/>
Select File3:
<input id="File3" type="file" runat="Server"/>
Select File4:
<input id="File4" type="file" runat="Server"/>
Select File5:
<input id="File5" type="file" runat="Server"/>
Select File6:
<input id="File6" type="file" runat="Server"/>
Select File7:
<input id="File7" type="file" runat="Server"/>
Select File8:
<input id="File8" type="file" runat="Server"/>
Select File9:
<input id="File9" type="file" runat="Server"/>
Select File10:
<input id="File10" type="file" runat="Server"/>
Select File11:
<input id="File11" type="file" runat="Server"/>
Select File12:
<input id="File12" type="file" runat="Server"/>
Select File13:
<input id="File13" type="file" runat="Server"/>
Select File14:
<input id="File14" type="file" runat="Server"/>
Select File15:
<input id="File15" type="file" runat="Server"/>
Se vuoi aumentare il numero di file inviabili fai esattamente
il contrario quindi aggiungi sotto al codice di prima
Codice PHP:
Select File16: <input id="File16" type="file" runat="Server"/>
Select File17: <input id="File18" type="file" runat="Server"/>
etc...
Chiaro?
Spero di esserti stato utile e che, al contrario di altre persone,
lasci/riporti nello script il mio nickname.
Quindi se hai problemi non postare nuovamente il codice
in un nuovo topic ma fatti vivo qui almeno vedrò di aiutarti.