Pagina 1 di 7 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 62
  1. #1

    preload o scritta ATTENDERE PREGO

    ho questo upload per caricare resizare e salvare sul server delle miniature..

    però quando incappo in file molto pesanti non essendoci un preload o una scritta attendere pare che nulla stia accadendo fino ad operazione ultimata....

    e molti chiudono la pagina pensando che nulla stia succedendo

    è possibile aggiungere un preload gif oppure un testo ATTENDERE PREGO
    durante l'operazione di carcamento e resize?

    ecco 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 senderSystem.EventArgs e

      
    titletext2.Text titletext.Text ""
      
    // 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 filedouble newWidthdouble newHeightstring virPathbool overwrite
      { 
       
    string destPath "."
       
    double ThumbnailWidth 64.0
       
    double ThumbnailHeight 64.0
       
    bool owr false

       if (
    virPath != ""destPath virPath
       if (
    newWidth 0ThumbnailWidth newWidth
       if (
    newHeight 0ThumbnailHeight newHeight
       if (
    overwrite
        
    owr true
       else 
        
    owr true

       
    int pathCheck = (destPath.Substring(destPath.LastIndexOf('/') + 1)).Length
       if (
    pathCheck 0destPath += "/";

       
    string fileName Request.QueryString["melavivo"] + Path.GetExtension(file.FileName).ToLower();
       
    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 "' Formato immagine non valido. Caricamento Annullato.</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 rThumbnailWidthrThumbnailWidth image.Width
           if (
    orgImgHeight rThumbnailHeightrThumbnailHeight 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 fileNameimage.RawFormat); 
             
    Status.Text += "<span style=\"color:Green;\">Foto inserita con successo!!!

    </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 senderEventArgs e

      
    HttpFileCollection uploadedFiles Request.Files

      
    Status.Text ""

      for (
    int i 0uploadedFiles.Count++)   
       { 
        
    // 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[0], 350.0350.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ì ;) 
       


      
    // protected void SubmitButton_Click(Object sender, EventArgs e) 

    </script> 


    grazie infinite
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    forse dovresti usare una pagina intermedia che ti visualizza il messaggio di attesa e rimanda alla pagina di elaborazione, utilizzando il tag html meta.
    Ans.

  4. #4
    edit
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  5. #5
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    usare ajax e l'updateprogress.

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Un sample di Dino Esposito in C# (2.0): http://weblogs.asp.net/despos
    =============================

    UNO.aspx
    codice:
    <%@ Page language="C#" %>
    
    <SCRIPT runat="server">
    void SubmitRequest(object sender, EventArgs e)
    {
    	Response.Redirect("DUE.aspx?target=TRE.aspx?accountNo=" + Account.Text);
    }
    </SCRIPT>
    
    <HTML>
    	<title>WAIT MESSAGE</title>
    	<body>
    		<form id="Form1" method="post" runat="server">
    			<asp:textbox runat="server" id="Account" text="..." />
    			<asp:button runat="server" text="Submit" onclick="SubmitRequest" />
    		</form>
    	</body>
    </HTML>


    DUE.aspx
    codice:
    <%@ page language="C#" %>
    
    <HTML>
    	<script language="javascript">
    	    var counter = 1;
    	    var maxLength = 10;
    	    var timer;
        		
    	    function TimerFunc() {
    		    counter += 1;
        		
    		    if (counter <= maxLength)  
    			    GaugeBar.innerText += "n ";
    		    else {
    			    GaugeBar.innerText = "";
    			    counter = 1;
    		    }
    	    }
    
    	    function BeginPageLoad() {
    		    location.href = "<%= Request.QueryString["Target"]%>";
    		    timer = window.setInterval("TimerFunc()", 150);
    	    }
        	
    	    function EndPageLoad() {
    		    window.clearInterval(timer);
    	    }
    	</script>
    
    
    	<body bgcolor="#ffff00" onload="BeginPageLoad()" onunload="EndPageLoad()">
    		<form runat="server">
    	        
    
    
    
    	        <h1 ><font color="blue">Attendi...La tua richiesta è in corso</font></h1>
    		    <span style="font-family:webdings; color:blue" id="GaugeBar" />
    		</form>
    	</body>
    </HTML>
    TRE.aspx
    codice:
    <%@ page language="VB"%>
    
    <%@ Import Namespace="System.Threading" %>
    
    <script runat="server">
            Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
               Thread.Sleep(6000)
               Info.Text = Request.QueryString("accountNo")
            End Sub
    </script>
    
    <HTML>
    	<body>
    		<form id="Form1" method="post" runat="server">
    			<h1>Information Found</h1>
    			<H3>Your account number is:<asp:label id="Info" runat="server" /></H3>
    			<hr>
    			<asp:hyperlink runat="server" text="Back" navigateurl="UNO.aspx" />
    		</form>
    	</body>
    </HTML>

  7. #7
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    Originariamente inviato da cassano
    usare ajax e l'updateprogress.
    I got the remedy

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ho un esempietto piuttosto datato.
    Nella pagina ho un pulsante che fa il submit. L'operazione è lunga. Durante l'elaborazione viene disabilitato il pulsante e compare una scritta del tipo: "prego attendere... elaborazione in corso"

    codice:
        <form id="form1" runat="server">
            <div>
                <asp:Button ID="Button1" runat="server" Text="Button"></asp:Button>
            </div>
            <div id="div2"></div>
        </form>
    codice:
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Inserire qui il codice utente necessario per inizializzare la pagina
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim inizio As DateTime = DateTime.Now
            Do While (Now().Subtract(inizio).TotalSeconds <= 5)
            Loop
    
        End Sub
    
        Private Sub Button1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Init
            Dim btn As Button = DirectCast(sender, Button)
            btn.Attributes.Add("onclick", "v=this;window.setTimeout(function(){v.disabled=true;document.getElementById('div2').innerHTML = 'Operazione in corso, prego attendere...';}, 1);")
    
        End Sub
    L'esempio è scarno ma funziona. Al posto della scritta si può usare una gif animata.

    Può essere pure interessante la tecnica che consiste nel velare di grigio la pagina durante il submit in modo da disabilitare tutto e presentare al centro un rettangolo con la gif animata o la scritta "prego attendere"


    Pietro

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    riprendendo il quesito, con qualcosa del genere 'lightbox' diventa abbastanza carino. Perciò (mi dispiace per Dino Esposito) basta una pagina sola con un pochettino di javascipt (un pizzichino, senza esagerare )
    Pietro

  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    velare di grigio la pagina durante il submit

    come ?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.