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

    Formmail - problema upload file .jpg

    Ciao,
    ho trovato proprio su questo forum il seguente script che serve per inviare file attraverso un formmail.
    Il modulo (che io ho chiamato prova_upload.php) funziona bene per tutti i tipi di file da uploadare tranne che per i .jpg: assurdo!
    Ho fatto molte prove con i .gif e i .tif e non danno nessun problema, mentre quando cerco di caricare un .jpg a volte mi dice che il tipo di file non è consetito mentre altre dice che non ho caricato nessun file. Qualcuno sa aiutarmi? Io non capisco proprio!

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body bgcolor="#D2D2D2" leftmargin="3" topmargin="3" marginwidth="0" marginheight="0" text="#000000">
    <?
    // RENDIAMO LO SCRIPT COMPATIBILE CON LE VERSIONI DI PHP < 4.1.0
    if(!isset($_POST)) $_POST = $HTTP_POST_VARS;
    if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;

    function validate_upload($thefile) {
    global $thefile_type, $thefile_name, $thefile_size;
    $my_max_file_size = "20240000"; # in bytes

    $registered_types = array(
    "image/jpeg" => ".jpg",
    "image/tiff" => ".tif",
    "image/gif" => ".gif"
    ); # these are only a few examples, you can find many more!
    $allowed_types = array("image/jpeg", "image/tiff", "image/gif");
    $start_error = "\n";
    if ($thefile == "none") { # do we even have a file?
    $error .= "\n- Nessun documento allegato.
    ";
    } else { # check if we are allowed to upload this file_type
    if ($thefile_size > $my_max_file_size) $error .= "\n- Il file allegato supera la dimensione massima consentita.
    ";
    if (!in_array($thefile_type, $allowed_types)) {
    $error .= "\n- Il file che hai inserito non è del tipo richiesto:

    \n";
    while ($type = current($allowed_types)) {
    $error .= "\n" . $registered_types[$type] . " (" . $type . ")
    ";
    next($allowed_types);
    }
    $error .= "\n";
    }
    if ($error) {
    $error = $start_error . $error . "\n";
    return $error;
    } else {
    return false;
    }
    }
    } # END validate_upload

    ?>
    <font face="Arial, Helvetica, sans-serif" size="2">

    <?

    if ($_POST['op']=="invio") {
    $error=0;
    $msg="";
    if ($nome=="") {
    $error=1;
    $msg.="- Il campo nome è vuoto.
    ";
    }
    if ($cognome=="") {
    $error=1;
    $msg.="- Il campo cognome è vuoto.
    ";
    }
    if ($titolo=="") {
    $error=1;
    $msg.="- Il campo cognome è vuoto.
    ";
    }
    if ($email=="") {
    $error=1;
    $msg.="- Il campo email è vuoto.
    ";
    }
    if ($email!="" && !eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) {
    $error=1;
    $msg.="- L'email inserita non è valida.
    ";
    }
    $error_file="";
    if (!$thefile || $thefile=="none" || $thefile=="") {
    $error=1;
    $msg.="- Non ha inserito l'allegato.
    ";
    } else $error_file = validate_upload($thefile);
    if ($error==1 || $error_file!="") {
    echo"

    Attenzione! Si sono verificati i seguenti errori:
    $msg
    $error_file
    <a href=\"java script:history.back()\">Clicchi qui</a> per reinserire i dati.";
    } else {

    // parte modificata

    $attach = $_FILES["thefile"]["tmp_name"];
    $file_name = $_FILES["thefile"]["name"];
    $file_type = $_FILES["thefile"]["type"];
    $file_size = $_FILES["thefile"]["size"];
    $file = @fopen($attach, "r");
    $contents = @fread($file, $file_size);
    $curr = chunk_split(base64_encode($contents));
    @fclose($file);

    $boundary = "XX-1234DED00099A"; // messo in un array per maggior facilità d'uso

    $emailto="info@prova.it"; // INSERIRE L'EMAIL QUI!!
    $data=date("j/m/Y");
    $ora=date("h:i:s");

    $headers = "MIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
    $headers .= "Content-Transfer-Encoding: 7bit\n";
    $headers .= "From: $email\n";
    $headers .= "X-attachments: $file_name\n";

    $oggetto_send="$file_name";

    $messaggio="--$boundary\n";
    $messaggio.="Content-Type: text/plain; charset=us-ascii\n";
    $messaggio.="Content-Transfer-Encoding: 7bit\n\r";
    $messaggio.="Curriculum inviato il $data alle $ora\n\r\nDati inseriti\n";
    $messaggio.="Nome: $nome\n\rCognome: $cognome\n";
    if ($telefono!="") $messaggio.="Telefono: $telefono\n";
    $messaggio.="Email: $email\nCommento:\n $commento\n";
    $messaggio.="--$boundary\n";
    $messaggio.="Content-Type: $file_type; name=\"$file_name\"\n";
    $messaggio.="Content-Transfer-Encoding: base64\n";
    $messaggio.="Content-Disposition: attachment; filename=\"$file_name\"\n\n";
    $messaggio.="$curr\n";
    $messaggio.="--$boundary--\n";

    if (!mail($emailto, $oggetto_send, $messaggio, $headers)) {
    echo "
    Attenzione.
    Si sono verificati degli errori durante l'invio della Email.

    Vi preghiamo di riprovare <a href=\"java script: history.back()\">cliccando qui.</a>

    Se l'errore persiste Vi invitamo a riprovare più tardi. Grazie.";
    }
    else {
    $messaggio_risposta="Grazie per averci contattato.\n\rIl vostro contributo è stato inoltrato al responsabile.\n\r\n\rDati inseriti\n";
    $messaggio_risposta.="Nome: $nome\n\rCognome: $cognome\n\r";
    if ($telefono!="") $messaggio_risposta.="titolo: $titolo\n\r";
    $messaggio_risposta.="Commento:\n\r$commento\n\r\n \r";
    $messaggio_risposta.="Distinti saluti.\n\r";
    $oggetto2="Prova invio email con allegato";
    mail($email, $oggetto2, $messaggio_risposta,"From: Prova<$emailto>");
    echo "
    Email inviata correttamente.


    I dati inseriti sono i seguenti:

    ";
    echo"Nome: $nome

    Cognome: $cognome
    ";
    if ($telefono!="") echo"Titolo: $titolo
    ";
    echo"Email: $email
    Commento: ".nl2br($commento)."



    Grazie per averci contattato.";
    }
    }

    } else {
    ?>









    <form enctype="multipart/form-data" method="post" action="prova_upload.php?op=invio" name="contatti">
    <table width="550" border="0" cellspacing="3" cellpadding="0">
    <tr>
    <td>Nome *</td>
    <td>
    <input type="text" name="nome" size="30">
    </td>
    </tr>
    <tr>
    <td>Cognome *</td>
    <td>
    <input type="text" name="cognome" size="30">
    </td>
    </tr>
    <tr>
    <td>Titolo*</td>
    <td>
    <input type="text" name="titolo" size="30">
    </td>
    </tr>
    <tr>
    <td>Email *</td>
    <td>
    <input type="text" name="email" size="30">
    </td>
    </tr>
    <tr>
    <td>Allegare file (sono permessi i file con estensione .doc, .pdf, .ps) *</td>
    <td>
    <input type="hidden" name="MAX_FILE_SIZE" value="102400">
    <input name="thefile" type="file" SIZE="35">
    </td>
    </tr>
    <tr>
    <td>Commento *</td>
    <td>
    <textarea name="commento" wrap="VIRTUAL" cols="30" rows="5"></textarea>
    </td>
    </tr>
    <tr>
    <td colspan="2">
    <div align="center">
    <input type="hidden" name="op" value="invio">
    <input type="submit" name="Submit" value="Invia">
    <input type="reset" name="Submit2" value="Reimposta">
    </div>
    </td>
    </tr>
    </table>
    </form>
    <font size="1">I campi con l'asterisco sono obbligatori.

    <?
    }
    ?>
    </font>

    </table>
    </body>

    </html>

  2. #2
    $allowed_types = array("image/jpeg", "image/tiff", "image/gif");


    ... considera "jpeg" e non "jpg"... credo.

  3. #3
    Ciao insanelight,
    grazie pe avermi scritto ma non ho capito la tua risposta.
    Io ho provato tutte combinazioni possibili di .jpeg e .jpg ma niente da fare, ce l'ha con i .jpg.

  4. #4
    Ciao a tutti, scusate se ci riprovo ma il problema mi sembra così assurdo che non posso credere che non sia già capitato ad altre persone. Sembra che tutti i tipi di file vadano bene tranne i .jpg?!!??!!

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.