Visualizzazione dei risultati da 1 a 2 su 2

Discussione: valore da aspx ad asp

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    26

    valore da aspx ad asp

    Ciao a tutti. sono di fronte ad un problema che non riesco a superare.
    Ho la necessità di uploadare e creare una thumbnail della foto caricata. fin qui tutto bene, uso il seguente script in c# di riddick (cui vanno i miei più sentiti ringraziamenti )
    <%@ 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 = "&quot;Upload & Resample On-Fly, delle immagini inviate, su di una cartella del Server&quot; [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 &copy;</a>
    on
    <a href=\"http://www.html.it\" target=\"_blank\">html.it</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;
    bool exist = 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);
    string estensione = Path.GetExtension(file.FileName).ToLower();
    double orgImgWidth = 0.0;
    double orgImgHeight = 0.0;
    double rThumbnailWidth = 0.0;
    double rThumbnailHeight = 0.0;

    ImageCodecInfo[] imgCodec = ImageCodecInfo.GetImageEncoders();
    EncoderParameters encPars = new EncoderParameters(2);
    EncoderParameter encPar1 = new EncoderParameter( System.Drawing.Imaging.Encoder.Quality, 100L );
    EncoderParameter encPar2 = new EncoderParameter( System.Drawing.Imaging.Encoder.Compression, 100L );

    encPars.Param[0] = encPar1;
    encPars.Param[1] = encPar2;

    destPath = Server.MapPath(destPath);
    exist = File.Exists(destPath + fileName);

    if (!exist && (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 (exist && owr)
    {
    message = "OverWritted";
    try
    {
    File.Delete(destPath + fileName);
    }
    catch(IOException ioe)
    {
    message = "<div id=\"error\">Error: " + ioe.GetType().Name + ": The write operation could not be performed because the specified part of the file is locked. Not OverWritted</div>";
    }
    } // if (exist && owr)

    if ((estensione == ".jpg") || (estensione == ".jpeg"))
    bitmap.Save(destPath + fileName, imgCodec[1], encPars);
    else
    bitmap.Save(destPath + fileName, image.RawFormat);

    Status.Text += "<span style=\"color:Green;\">File '" + fileName + " &#64; [" + (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(Image image = Image.FromFile(file))
    } // if (!exist && (fileName.Length != 0) || owr)
    else
    {
    if (exist && (!owr))
    Status.Text += "<span style=\"color:Red;\">Error : The file \"<u>" + fileName + "</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 se scrivo come qui sotto :

    UploadAndResizeAnImage(uploadedFiles[i], 1024.0, 768.0, "./public/", true);
    // Response.Write("FileName : '" + Path.GetFileName(uploadedFiles[i].FileName) + "'
    ");
    // significa che voglio che ogni immagine inviata (uploadedFiles[i])
    // venga ridimensionata a 1024x768 (tenendo conto però delle proporzioni originali)
    // e che se il file esiste non deve essere sovrascritto (overwrite = false).
    // Chiaro? Più di così

    // Vogliamo pure i Thumbnails??? allora aggiungiamo, sempre in questo ciclo for :
    UploadAndResizeAnImage(uploadedFiles[i], 150.0, 150.0, "./public/thumbs/", true);
    // significa che voglio che ogni immagine inviata (uploadedFiles[i])
    // venga ridimensionata a 150x150 (tenendo conto però delle proporzioni originali)
    // e che se il file esiste non deve essere sovrascritto (overwrite = false).
    }

    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 &copy;</a>
    on
    <a href=\"http://www.html.it\" target=\"_blank\">html.it</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;
    }
    div#error
    {
    color: Red;
    font-weight: bold;
    text-decoration: underline;
    white-space: normal;
    }

    </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"/>


    <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>
    a questo punto però sorgono i problemi, una volta fatto l'upload del file devo caricare su db access due variabili:
    user_id dell'utente
    filename
    la domanda da 1 milione di euro è: è possibile passare il filename dalla pagina upload.aspx a quella xxx.asp? se si come potrei fare? io ho pensato ad una session oppure ad una request.querystring. ma è possibile passare tali valori tra pagine di diversa estensione?
    insomma mi sono incartato, sono ad un punto morto, spero nell'aiuto di qualcuno. grazie

  2. #2
    1. Puoi nella pagina .aspx creare una form nascosta con dei campi hidden dove scrivi i dati da passare alla pagina .asp tramite un submit della form fatto in automatico (con javascript).
    2. Puoi fare un redirect dalla pagina .aspx verso la pagina .asp passando in queryString i dati da memorizzare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.