Visualizzazione dei risultati da 1 a 5 su 5

Discussione: form invio immagini

  1. #1

    form invio immagini

    Ciao ragazzi,vorrei realizzare un form per l invio di immagini.
    Il tutto dovrebbe essere strutturato cosi'
    1)Pagina index.php con form e un div con id univoco che dovrebbe visualizzare le immagini
    2)invia.php che sarebbe la pagina che elabora

    Ora chiedo a voi esperti...Esempio:
    Mi trovo sulla pagina index.php scelgo la foto da inviare e clicco su invia,ora vorrei capire qual'è la sintassi javascript da usare per fare in modo di visualizzare l immagine inviata una volta finita di caricare nel div unico presente in index.php,quindi evitare la pagina bianca di attesa invia.php

    Spero di ricevere aiuto Grazie

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: si può fare in tanti modi. Uno è questo

    nella pagina metti un iframe nascosto

    <iframe name="nascosto" style="display:none"></iframe>

    il form ha nascosto come target e multipart/form-data come enctype

    <form name="form1" method="post" action="upload.aspx" id="form1" target="_nascosto" enctype="multipart/form-data">

    la pagina che riceve il file, lo salva nel server e inietta un codice javascript, di questo tenore

    parent.document.getElementById("div1").innerHTML = "[img]./DSCN0009.JPG[/img]";

    ps. ho provato con IE8, Firefox, Opera, Safari, e va. Il più lento è IE
    Pietro

  3. #3
    Originariamente inviato da pietro09
    :master: si può fare in tanti modi. Uno è questo

    nella pagina metti un iframe nascosto

    <iframe name="nascosto" style="display:none"></iframe>

    il form ha nascosto come target e multipart/form-data come enctype

    <form name="form1" method="post" action="upload.aspx" id="form1" target="_nascosto" enctype="multipart/form-data">

    la pagina che riceve il file, lo salva nel server e inietta un codice javascript, di questo tenore

    parent.document.getElementById("div1").innerHTML = "[img]./DSCN0009.JPG[/img]";

    ps. ho provato con IE8, Firefox, Opera, Safari, e va. Il più lento è IE
    Ciao sto provando cosi'

    <body> <iframe name="nascosto" style="display:none"></iframe> <form name="form1" method="post" action="upload.php" id="form1" target="nascosto" enctype="multipart/form-data"> <input type="hidden" size="1" name="MAX_FILE_SIZE" value="3000000000"> <input name="userfile" size="2" type="file">
    <input type="submit" value="Aggiorna foto"> <div id="msg"> </div>
    e nella pagina unpload.php ho messo questo codice
    echo"<script type=\"text/javascript\"> parent.document.getElementById(\"msg\").innerHTML = \"<img src=\"miniature/$nome_file\"/>\";</script> <div id=\"msg\"> </div> ";
    il file viene passato sul server però non mi mostra l immagine a video...in cosa sto sbagliando?

  4. #4
    Mi spiego meglio..

    Praticamente partendo dalla pagina principale (index.php) e inserendo un form per l invio delle immagini vorrei che al click su invia stampasse a video
    una gif contenente un immagine di attesa nella pagina madre(index.php)...e che alla fine dell upload dell immagine quest ultima venisse mostrata sempre nella pagina principale..(index.php)

    Come devo procedere per realizzare la cosa ?
    Grazie

  5. #5
    Ho fatto cosi'
    Codice PHP:
    index.php
    <body>


    <
    iframe name="nascosto"  style="display:none"></iframe>
    <
    form name="form1" method="post" action="upload.php" id="form1" target="nascosto" enctype="multipart/form-data">
    <
    input type="hidden" size="1" name="MAX_FILE_SIZE" value="3000000000">
    <
    input name="userfile" size="2" type="file">
     
    <
    input  type="submit" value="Aggiorna foto"></form>


    <
    div id="content">

    </
    div
    e upload.php cosi'
    Codice PHP:
    <?

    include"config.php"




    $dimensione_massima=2651200//dimensione massima consentita per file in byte -> 1024 byte = 1 Kb
    $dimensione_massima_Kb=$dimensione_massima/1024;
    $cartella_upload="immagini/"//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('.jpg','.jpeg'); //estensioni ammesse

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



    error_reporting(E_ALL);
    $img "immagini/$nome_file"// percorso al file dell'immagine
    $thumbs "miniature/"// directory di salvataggio delle miniature create
    list($width$height)  = getimagesize($img);
    // dimensioni della miniatura da creare
    $thumbWidth 120// larghezza
    $thumbHeight 100// altezza
    $thumbscale min($thumbWidth $width$thumbHeight $height);    
    $new_width floor($thumbscale $width);
    $new_height floor($thumbscale $height);
    $tmp_img imagecreatetruecolor($new_width$new_height);
    $image imagecreatefromjpeg($img);
    imagecopyresampled($tmp_img$image0000$new_width$new_height$width$height);
    imagejpeg($tmp_img$thumbs."$nome_file"100);
    ImageDestroy($tmp_img);

    echo
    "<img src=\"immagini/$nome_file\">
    "
    ;

      }
        }else{
            echo 
    $errore;
        }
    }

    ?><script>
    parent.document.getElementById("content").innerHTML = "[img]immagini/<?echo"$nome_file";?>[/img]";
    </script>
    E diciamo funziona...al momento dell invio dopo che finisce di uppare l immagine mi viene mostrata a video sotto...la tua prima soluzione proposta mi funziona
    Ora vorrei un pò arricchirlo...al momento del clik far comparire subito sotto il pulsante Sfoglia una gif che avverta di pazientare...e nel momento in cui il file viene caricato e mostrato a video fare in modo che quella gif scompaia... difficile da fare?
    Ad ogni modo ti ringrazio questa tecnica dell iframe per l invio dei file non la conoscevo...mi sarà molto utile in futuro..al posto dell iframe e possibile anche utilizzare un div?

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