Visualizzazione risultati 1 fino 17 di 17

Discussione: aggiornamento immagine

  1. #1
    L'avatar di fantacalciojarno
    fantacalciojarno non è connesso Utente giovane
    Data registrazione
    31-12-2010
    Messaggi
    89

    Predefinito aggiornamento immagine

    In una pagina (foto.htm) ho un form che invia un immagina ad una cartella tramite un file php (upload.php),che oltre a uplodare l'immagine gli assegna sempre lo stesso nome e poi rimanda alla pagina htm dove l'immagina (allenat.pgn) viene visualizzata.Il problema nasce dal fatto che la pagina htm viene visualizzata con l'immagine vecchia finche non faccio il refresh manuale della stessa.
    Il problema credo stia nei cookie,ho provato diverse soluzioni ma nessuna buona.Consigli?

    Posto il form nella pagina foto.htm
    Codice HTML:
    <form ENCTYPE="multipart/form-data" action="upload.php"
    method="POST">
    <input type="file" name="file1">
    <input type="submit" value="upload"></form>
    e la pagina upload.php

    Codice PHP:
    <?
    $dimensione_massima
    =5120000; //dimensione massima consentita per file in byte -> 1024 byte = 1 Kb
    $dimensione_massima_Kb=$dimensione_massima/1024;
    $cartella_upload="public/"; //cartella in cui eseguire l'upload (controllare permessi scrittura)
    // percorso cartella relativo $cartella_upload="../public/";
    $filtrare=1; //filtrare x estensioni ammesse? 1=si 0=no
    $array_estensioni_ammesse=array('','.jpeg','.jpg',''); //estensioni ammesse

    if(!isset($_FILES['file1']) || $_FILES['file1']['size']==0){
    echo
    "Nessun file selezionato per l'upload";
    }elseif(
    $_FILES['file1']['size']>$dimensione_massima){
    echo
    "Il file selezionato per l'upload supera dimensione massima di $dimensione_massima_Kb Kb";
    }else{
    $nome_file=$_FILES['file1']['name'];
    $errore="";
    if(
    $filtrare==1){
    $estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, ".")));
    if(!
    in_array($estensione,$array_estensioni_ammesse)){
    $errore.="Upload file non ammesso. Estensioni ammesse: ".implode(", ",$array_estensioni_ammesse)."<br/>"; }
    }
    if(!
    file_exists($cartella_upload)){
    $errore.="La cartella di destinazione non esiste</br>";
    }
    if(
    $errore==""){
    if(
    move_uploaded_file($_FILES['file1']['tmp_name'], $cartella_upload."allenat.jpeg")){
    chmod($cartella_upload.$_FILES['file1']['name'],0777); //permessi per poterci sovrascrivere/scaricare
    echo "<script>window.location='foto.htm';</script>";
    }else{
    echo
    "Impossibile effettuare l'upload del file";
    }
    }else{
    echo
    $errore;
    }
    }
    ?>

  2. #2
    Guest

    Predefinito

    Nell'header della pagina html metti questi tag

    Codice PHP:
    <META HTTP-EQUIV="Expires" CONTENT="0">
    <
    META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    Servono per non memorizzare i dati nella cache del browser.
    Dovresti risolvere.

    Prima di provare però svuota la tu cache.

  3. #3
    L'avatar di fantacalciojarno
    fantacalciojarno non è connesso Utente giovane
    Data registrazione
    31-12-2010
    Messaggi
    89

    Predefinito

    Ho gia'provato in questo modo,e funziona,ma solo la prima volta che si carica un immagine,se ne carico subito dopo un altra sono punto e a capo probabilmente perchè la nuova immagine ha creato nuove cache.
    Come si potrebbe risolvere?

  4. #4
    Guest

    Predefinito

    La cache la crea il browser e se tu gli dici di non salvare nulla non dovrebbe restarci nulla in cache, anche cambiando 100 volte

  5. #5
    L'avatar di fantacalciojarno
    fantacalciojarno non è connesso Utente giovane
    Data registrazione
    31-12-2010
    Messaggi
    89

    Predefinito

    Ti garantisco che funziona solo la prima volta,ho riprovato adesso diverse volte.
    Stavo pensando a un meta refresh il problema è che se lo metto ogni pochi secondi finisco in un loop infinito,avrei bisogno che mi facesse UN solo refresh ogni volta che entro nella pagina foto.htm

  6. #6
    Guest

    Predefinito

    Una curiosità, ma dopo l'upload, come ci torni alla pagina html?

  7. #7
    L'avatar di fantacalciojarno
    fantacalciojarno non è connesso Utente giovane
    Data registrazione
    31-12-2010
    Messaggi
    89

    Predefinito

    Con:
    echo"<script>window.location='foto.htm';</script>";
    nel file php quando la foto viene caricata con successo.
    Ma è lo stesso con 'header'.
    Il sito è tra i preferiti...non so se puo'influire...

  8. #8
    Guest

    Predefinito

    Puoi fornire una url dove provare quello che hai fatto?

  9. #9
    L'avatar di fantacalciojarno
    fantacalciojarno non è connesso Utente giovane
    Data registrazione
    31-12-2010
    Messaggi
    89

    Predefinito

    Mmm..veramente no,sto provando tutto tramite la gestione dei file..ma il file php è completamente quello che ho postato e l'htm è un semplice htm con il form postato piu e un <img scr=...>che prende la foto dalla cartella in cui viene salvata sempre con lo stesso nome...

  10. #10
    Guest

    Predefinito

    Non capisco come stai facendo le prove, ma per avere una misura coerente su quello che sarà, prova con le pagine così come le userai tu o i tuoi utenti.

  11. #11
    L'avatar di fantacalciojarno
    fantacalciojarno non è connesso Utente giovane
    Data registrazione
    31-12-2010
    Messaggi
    89

    Predefinito

    ok...ho fatto un collegamento alla pagina incriminata

    www.fantacalciojarno.altervista.org

    basta cliccare sulla scritta 'fantacalciojarno' e verrai indirizzato alla pagina foto.htm

  12. #12
    Guest

    Predefinito

    Potresti provare a sostituire

    Codice PHP:
    <meta http-equiv="Expires" content="0">
    con

    Codice PHP:
    <meta http-equiv="Expires" content="Tue, 01 Jan 2000 12:12:12 GMT">

  13. #13
    L'avatar di fantacalciojarno
    fantacalciojarno non è connesso Utente giovane
    Data registrazione
    31-12-2010
    Messaggi
    89

    Predefinito

    niente da fare....ne ho provate diverse anch io ma l'unica che mi sa che è valida è trovare il modo di fare un unico refresh come ti dicevo prima...se sai come si puo'fare.....cmq grazie per l aiuto

  14. #14
    Guest

    Predefinito

    Mi viene in mente una prova che si può fare:

    1) cambia l'estenzione del file foto.htm in foto.php
    2) al posto di

    Codice PHP:
    <img border="2" src="public/allenat.jpeg" width="75" height="100">
    metti

    Codice PHP:
    <img border="2" src="allenat.php?t=<?php echo date('YmdHis') ?>" width="75" height="100">
    (in pratica aggiungo un attributo legato alla data e all'ora in modo che la pagina richiesta sia sempre diversa e quindi non sia in cache)

    3) nella stessa cartella di foto.php crei il file allenat.php così:

    Codice PHP:
    <?php
    /* FILE NAME: allenat.php */


    function LoadJpeg($imgname)
    {
    /* Attempt to open */
    $im = @imagecreatefromjpeg($imgname);

    /* See if it failed */
    if(!$im)
    {
    /* Create a black image */
    $im = imagecreatetruecolor(150, 30);
    $bgc = imagecolorallocate($im, 255, 255, 255);
    $tc = imagecolorallocate($im, 0, 0, 0);

    imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

    /* Output an error message */
    imagestring($im, 1, 5, 5, 'Error loading ' . $imgname, $tc);
    }

    return
    $im;
    }

    header('Cache-Control: no-cache');
    header('Pragma: no-cache');
    header('Content-Type: image/jpeg');

    $img = LoadJpeg('public/allenat.jpeg');

    imagejpeg($img);
    imagedestroy($img);
    ?>
    Il file non fa altro che mostrare l'immagine.

    Fai sapere
    Ultima modifica di simpleticket : 07-09-2011 alle ore 18.01.18

  15. #15
    L'avatar di fantacalciojarno
    fantacalciojarno non è connesso Utente giovane
    Data registrazione
    31-12-2010
    Messaggi
    89

    Predefinito

    Ho provato molto velocemente ma credo ci sia un piccolo problema perchè continua a caricare ma non visualizza e sembra che non carichi nulla anche se poi quando faccio il refresh manuale appare la nuova foto.
    Ho fatto copia incolla senza controllare nemmeno un po il codice perchè adesso sto andando poi controllo meglio e ti faccio sapere

  16. #16
    Guest

    Predefinito

    Ho fatto una prova ed ho visto che dopo l'upload torni alla pagina foto.htm.

    Prova a tornare alla pagina foto.php, magari con lo stesso espediente dell'aggiunta del parametro data/ora

    Codice PHP:
    $t = date('YmdHis');
    header('Location: foto.php?t='.$t);

  17. #17
    L'avatar di fantacalciojarno
    fantacalciojarno non è connesso Utente giovane
    Data registrazione
    31-12-2010
    Messaggi
    89

    Predefinito

    Ciao Simpleticket,
    internet mi aveva abbandonato e poi ho avuto un po di noie,con l'ultima modifica cmq funziona perfettamente,ti ringrazio tanto x l'aiuto,sei stato prezioso.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •