Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Ciclo While] ..problema: ciclo ripetuto all'infinito anzichè una volta sola. Aiuto?

    Buona domenica a tutti,

    con il seguente script vorrei far apparire una scritta durante il caricamento di un'immagine uploadata dall'utente. Ho pensato che il ciclo while potesse fare al caso mio.

    Però ho un problema: il seguente script fa apparire la scritta "Attendere il caricamento..." un milione di volte!! Invece io voglio farla apparire soltanto una volta.

    Cioè la logica deve essere questa: fai apparire questa scritta mentre il file viene uploadato. Stop. Quando finisce l'upload, TU scritta scompari!

    Qui di seguito lo script per come ce l'ho adesso. Tenere presente che vi stamperà la scritta "Attendere il caricamento..." parecchie volte e di colpo e dovrete chiudere la pagina!

    Codice PHP:
    <form method="post" enctype="multipart/form-data" action="">
    <input type="file" name="allegato" />
    <input type="submit" name="invia" value="prova" />
    </form>

    <?php
    if(isset($_POST['invia'])) {

    $allegato $_FILES['allegato']['tmp_name'];
    $allegatoName $_FILES['allegato']['name'];

    while(!
    is_uploaded_file($allegato)) {

       print (
    "Attendere il caricamento...");

    }

       if (
    is_uploaded_file($allegato)) {

          echo (
    "File caricato con successo");

       } else {

         echo (
    "Errore nel caricamento");

       }
    }
    ?>
    Come faccio a far apparire la scritta soltanto una volta?
    (Che poi questa non sarà una scritta ma un'immagine gif animata...)

  2. #2
    Codice PHP:
    $gia_mostrato false;
    while(!
    is_uploaded_file($allegato)) {
       if (!
    $gia_mostrato) {
          print (
    "Attendere il caricamento...");
          
    $gia_mostrato true;
       } else {
          
    // qualcos'altro....
       
    }

    Bruttino, ma funziona


  3. #3
    Sei un grande! Ora lo provo!!

    Ah, ti ho appena risposto sull'altro argomento mi stai dando una GRANDISSIMA mano!!!

    Grazie grazie grazie, ecc, ecc ecc

  4. #4
    Dascos ho provato il tuo codice ma non funziona.

    Il pc mostra un WARNING: FATAL ERROR , per il superamento dei 30 secondi di attesa.

  5. #5
    Se l'errore et lo da anche levando (commentando) totalmente quel while, allora il problema è reale, ovvero per elaborare quella pagina ci mette troppo. Se invece commentando quel while il problema non ce l'hai, puoi provare qualcosa di questo tipo

    Codice PHP:
    $gia_mostrato false;
    while(!
    is_uploaded_file($allegato)) {
       if (!
    $gia_mostrato) {
          print (
    "Attendere il caricamento...");
          
    $gia_mostrato true;
       } else {
          
    // qualcos'altro....
          
    sleep(1);
       }

    ma è fondamentalmente un accrocchio e potrebbe non funzionare affatto!

  6. #6
    Cavolo..ma come fanno gli altri siti a visualizzare un'immagine di caricamento allora?!

    PS: sull'altro post ti ho risp (cattive notizie)

  7. #7
    Credo che semplicemente non fanno come vuoi fare tu...
    All'atto del' upload mostrano un'immagine e stop, OPPURE usano le estensioni http://pecl.php.net/package/uploadprogress o APC, con JSON attivo

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    154
    Io ho fatto così una volta!

    Un div con id="divLoader" con una classica gif animata e la scritta "Attendere prego".
    Nel css questo div ha la proprietà display=none;

    Poi ho fatto una banalissima funzione in javascript collegata al tasto "Carica". In pratica quando clicco su carica tramite javascript porto la proprietà display di divLoade da none a block; (spero di essere stato chiaro in questo punto)

    Nel mio caso al caricamento dell'immagine andavo su un'altra pagina tramite un header quindi in pratica io compilo il form, carico l'imagine, premo il tasto (e mi compare il div "Attendere prego"), finito il caricamento vado su un'altra pagina e quindi non vedo più quell'immagine.

    Potresti provare, nel tuo caso, a fare un header sulla pagina stessa però non conoscendo bene tutto il funzionamento non ti saprei dire se potrebbe essere una soluzione valida per te oppure no.
    Nel mio caso è ottima e non mi costa alcun ciclo e/o controllo ma visualizzo semplicemente un div che è già li.

    Fammi sapere.

  9. #9
    Mmmmmmmmh effettivamente potrei adottare la stessa formula.

    Perchè anch'io:

    - L'utente immette i dati
    - L'utente sceglie il file da uploadare
    - L'utente clicca su "CONFERMA"

    ..ecco al click dovrebbe uscire l'immagine del caricamento. Magari potrei far apparire, con PHP al comando isset("tastoConferma") una modale jQuery (che ho già pronte per l'uso).

    In ogni caso il mio script prima deve effettuare (a parte l'upload), l'invio dei dati...e poi far uscire un'altra finestra.

    E..magari..fare così:

    - Click su conferma
    - Echo della finestra di caricamento
    - Ad invio dei dati effettuato, aprire l'altra finestra..


    ..mmmh.

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.