Newsgroup: it.comp.www.asp
Titolo: Upload con ASP senza componenti sul server

Dovrei fare l'upload sul server indicando anche la cartella e poi vorrei che
sul server venissero create anche delle thumbnails in automatico.
Come posso fare? C'e' qualcosa di già pronto?
Grazie

 Grazie
Ciao
-- 
AZ [Microsoft - .NET MVP]
Mia Home page: 
http://ciclismo.sitiasp.it
Asp.Net community: 
http://www.aspitalia.com
Il mio blog: 
http://blogs.aspitalia.com/az

non so se posso...
e francamente non so se questo script usa oggetti COM (visto che non cosa
sono) ma siccome funziona lo posto... :o)
serve per creare le anteprime delle immagini
il file deve avere estensione .aspx (in questo caso: "miniare.aspx")
<%@ Page Language="C#" %>
<%@ import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.Text.RegularExpressions" %>
<script runat="server">
    int MaxWidth = 100; // Larghezza massima dopo il quale l'immagine viene
ridimensionata
    int MaxHeight = 100;  // Altezza massima dopo il quale l'immagine viene
ridimensionata
    int ScaleFactor = 20; // Fattore di scala per la miniatura
    System.Drawing.Image oldImage, newImage;
    void Page_Load(Object sender, EventArgs e) {
        if ( Request.QueryString["FileName"] != null ) {
            string strFileName =
Convert.ToString(Request.QueryString["FileName"]);
            if ( Request.QueryString["ScaleFactor"] != null &&
Convert.ToString(Request.QueryString["ScaleFactor"]) != "" &&
IsInteger(Convert.ToString(Request.QueryString["scalefactor"])) )
ScaleFactor = Convert.ToInt32(Request.QueryString["ScaleFactor"]);
            if ( strFileName != "" ) {
                try {
                    oldImage = System.Drawing.Image.FromFile(
Server.MapPath(strFileName) );
                    if ( oldImage.Width > MaxWidth || oldImage.Height >
MaxHeight ) {
                        // Immagine troppo grande, visualizzo la miniatura
                        newImage = oldImage.GetThumbnailImage(
(oldImage.Width*ScaleFactor/100), (oldImage.Height*ScaleFactor/100), null,
IntPtr.Zero);
                        Response.ContentType = "image/jpeg";
                        newImage.Save(Response.OutputStream,
System.Drawing.Imaging.ImageFormat.Jpeg);
                        oldImage.Dispose();
                        newImage.Dispose();
                        oldImage = null;
                        newImage = null;
                    } else {
                        // Immagine piccola, non faccio nulla
                        Response.ContentType = "image/jpeg";
                        oldImage.Save(Response.OutputStream,
System.Drawing.Imaging.ImageFormat.Jpeg);
                        oldImage.Dispose();
                        oldImage = null;
                    }
                } catch (Exception ex) {
                    Response.Write(ex.Message);
                }
            }
        }
    }
    private bool IsInteger(string strTmp) {
        Regex objNotIntPattern = new Regex("[^0-9-]");
        Regex objIntPattern = new Regex("^-[0-9]+$|^[0-9]+$");
        return !objNotIntPattern.IsMatch(strTmp) &&
objIntPattern.IsMatch(strTmp);
    }
</script>
l'utilizzo sarà questo:
<img src='miniare.aspx?FileName=pippo.jpg&ScaleFactor=20' border='0' alt=''>
io ho fatto un mix fra questo e la cartella Images per creare una galleria
di immagini con le anteprime... e devo dire che adesso quando devo creare
delle semplici gallerie anche di 100 immagini ci metto giusto il tempo
dell'upload! rivoluzionario :o)
non so se vi può essere utile...
ciao
davide

 davide
