Visualizzazione risultati 1 fino 9 di 9

Discussione: Problema con input file

  1. #1
    Guest

    Predefinito Problema con input file

    Ciao a tutti ho un problema con un form file

    Praticamente ho scritto:

    Codice PHP:
    echo " <td class='text2' align='center'>Carica l'immagine: <input type='file' name='filetoupload'></td>";
    E dopo il pulsante:

    Codice PHP:
    $file_tmp = $_FILES['filetoupload']['tmp_name'];
    $file_name = $_FILES['filetoupload']['name'];
    $file_name = str_replace(' ', '_', $file_name);
    I campi text che importo allo stesso modo funzionano ma quello file no xk?

  2. #2
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Hai messo al form l'attributo enctype="multipart form-data"?

  3. #3
    Guest

    Predefinito

    Ho scritto così ma non funziona:

    Codice PHP:
    function Ad_Production()
    {
    echo
    "<form method='POST'>";
    echo
    "<table width='95%' align='center'>";
    echo
    " <tr>";
    echo
    " <td class='text2' align='center'>Inserisci il nome: <input type='text' name='production' value='$production' size='40'></td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td>&nbsp;</td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td class='text2' align='center'>Carica l'immagine: <input type='file' name='filetoupload' enctype='multipart/form-data' method='post'></td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td>&nbsp;</td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td align='center'><input type='submit' value='Salva' name='ad_production'></td>";
    echo
    " </tr>";
    echo
    "</table>";
    echo
    "</form>";
    }

    if (!isset(
    $_POST['ad_production'])) {

    Ad_Production();

    } else {
    //setto le variabili
    $production = trim(htmlspecialchars($_POST['production']));
    $link_directory = "http://www.worldtechitalia.it/image/production";
    $alternative = "Immagine non disponibile";
    $upload_dir = "../../../image/production/";
    $file_tmp = $_FILES['filetoupload']['tmp_name'];
    $file_name = $_FILES['filetoupload']['name'];
    $file_name = str_replace(' ', '_', $file_name);
    $data = date('d/m/Y',time());
    $ora = date('H:i:s',time());
    $error = 0;
    $error_priority = 0;

  4. #4
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    L'attributo devi darlo al form non al tag input !
    Codice PHP:
    function Ad_Production()
    {
    echo
    "<form method='POST' enctype='multipart/form-data'>";
    echo
    "<table width='95%' align='center'>";
    echo
    " <tr>";
    echo
    " <td class='text2' align='center'>Inserisci il nome: <input type='text' name='production' value='$production' size='40'></td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td>&nbsp;</td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td class='text2' align='center'>Carica l'immagine: <input type='file' name='filetoupload'></td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td>&nbsp;</td>";
    echo
    " </tr>";
    echo
    " <tr>";
    echo
    " <td align='center'><input type='submit' value='Salva' name='ad_production'></td>";
    echo
    " </tr>";
    echo
    "</table>";
    echo
    "</form>";
    }

    if (!isset(
    $_POST['ad_production'])) {

    Ad_Production();

    } else {
    //setto le variabili
    $production = trim(htmlspecialchars($_POST['production']));
    $link_directory = "http://www.worldtechitalia.it/image/production";
    $alternative = "Immagine non disponibile";
    $upload_dir = "../../../image/production/";
    $file_tmp = $_FILES['filetoupload']['tmp_name'];
    $file_name = $_FILES['filetoupload']['name'];
    $file_name = str_replace(' ', '_', $file_name);
    $data = date('d/m/Y',time());
    $ora = date('H:i:s',time());
    $error = 0;
    $error_priority = 0;

  5. #5
    Guest

    Predefinito

    Ciao posso farti ancora una domanda?

    Dato che questo caricamento file importarà solo immagini volevo sapere se potevo creare un if che blocca certi formati?
    E come ultima cosa posso sapere di che dimensione è l'immagine che sto per importare?

    Grazie mille

  6. #6
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Certo che puoi farlo :)

    Il mime-type e le dimensione del file sono contenute nell'array $_FILES:

    Codice PHP:
    $consentiti = array("image/gif", "image/x-png", "image/png", "image/pjpeg", "image/jpeg", "image/bmp", "image/ief", "image/svg+xml", "image/tiff"); // mime type solo di immagini

    $kb = 512; // kilobyte massimi per files

    if(!in_array($_FILES["filetoupload"]["type"], $consentiti)) { // se il mime-type del file non è presente nell'array $consentiti
    exit("Puoi caricare solo immagini!");
    } else if(
    ceil($_FILES["filetoupload"]["size"] / 1024) > $kb) { // se occupa è più di $kb
    exit("Il file occupa troppo, il massimo è {$kb}kb";
    } else {
    // prosegui con l'upload :)
    // upload!
    }

  7. #7
    Guest

    Predefinito

    Grazie per i formati ma per le dimensioni mi sono espresso male intendevo se si poteva verificare la dimensioni in px

  8. #8
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Ho capito ma si può fare comunque:
    Codice PHP:
    $consentiti = array("image/gif", "image/x-png", "image/png", "image/pjpeg", "image/jpeg", "image/bmp", "image/ief", "image/svg+xml", "image/tiff"); // mime type solo di immagini

    $max_w = 500;
    $max_h = 500;

    list(
    $w, $h, $t, $a) = getimagesize($_FILES["filetoupload"]["tmp_name"]);

    if(!
    in_array($_FILES["filetoupload"]["type"], $consentiti)) { // se il mime-type del file non è presente nell'array $consentiti
    exit("Puoi caricare solo immagini!");
    } else if(
    $w > $max_w || $h > $max_h) { // se la larghezza è maggiore di $w o l'altezza è maggiore di $h
    exit("La risoluzione massima è di {$max_w}x{$max_h}px");
    } else {
    // prosegui con l'upload :)
    // upload!
    }

  9. #9
    Guest

    Predefinito

    Grazie mille sei un mito!

Regole di scrittura

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