Visualizzazione risultati 1 fino 10 di 10

Discussione: [php] $_FILE vuoto

  1. #1
    Guest

    Predefinito [php] $_FILE vuoto

    Buon pomeriggio Forum,
    ho un problemino con il form di upload di immagini che dovrei aggiungere ad un sito.. ho trovato in rete un multiupload in jquery (http://www.fyneworks.com/jquery/multiple-file-upload/) piuttosto semplice e che fa al caso mio.. solamente che mi da problemi nell'invio dei dati..
    ecco il form:

    Codice HTML:
    <ul>
            <li>
                Inserisci il titolo dell\'album, seleziona 1 o pi&ugrave; immagini,  e clicca su UPLOAD.<br />
            </li>
            <li>
        	 <form action="uploadphoto.php" method="POST" name="form" enctype="multipart/form-data">
          	 <label for="titolo" class="testo"><u>Titolo album</u></label><br />
          	 <input type="text" name="titolo" class="cella_input"  size="60" maxlength="100" />		         
            </li> 
            <li>
                <input type="file" size="20" maxlength="5" name="photo[]" id="photo" class="multi" accept="gif|jpg|jpeg|png|bmp"> <br />
                Puoi caricare 5 foto alla volta!
            </li>
            <li>
                <input type="submit" value="Upload">
        	 </form>		
            </li>
    </ul>
    ecco il codice php

    Codice PHP:
    if(isset($_POST)){
    if (isset(
    $_FILES) && !empty($_FILES)) { // verifico se $_FILES è pieno e settato
    $photos = $_FILES['photo']['name'];
    }else{
    echo(
    'E\' vuoto!');
    }
    $title_album = strip_tags($_POST['titolo']);
    $data = time();
    }
    come mai il controllo che faccio su $_FILES mi da sempre che è vuoto?! che il problema sia lo script jquery!?

  2. #2
    makingweb non è connesso Utente attivo
    Data registrazione
    30-06-2009
    Messaggi
    281

    Predefinito

    Prova a fare:

    Codice PHP:
    if(isset($_POST)){
    if (isset(
    $_FILES['photo']) && !empty($_FILES['photo'])) {
    $photos = $_FILES['photo']['name'];
    }else{
    echo(
    'E\' vuoto!');
    }
    $title_album = strip_tags($_POST['titolo']);
    $data = time();
    }

  3. #3
    Guest

    Predefinito

    grazie per la risposta innanzitutto.. :)
    ho provato la tua variante sulla condizione dell'IF ma non ho risolto.. mi da sempre vuoto.. comincio a pensare che lo script jquery per selezionare più file non passi in modo corretto l'array con i file che selezioni..

  4. #4
    makingweb non è connesso Utente attivo
    Data registrazione
    30-06-2009
    Messaggi
    281

    Predefinito

    prima possiamo provare a fare un altra cosa.
    All'inizio della pagina php ( quella dove fai il controllo ) subito dopo <?php metti:

    print_r($FILE)
    var_dump($FILE);
    Così controlliamo cosa c'è in $_FILE

  5. #5
    Guest

    Predefinito

    ho aggiunto le due righe che mi hai detto.. mi da come risultato questo..

    Codice HTML:
    Array ( ) array(0) { }
    è proprio vuoto a sto punto!?

  6. #6
    makingweb non è connesso Utente attivo
    Data registrazione
    30-06-2009
    Messaggi
    281

    Predefinito

    Si è vuoto quindi non viene inviato niente, forse ha sbagliato tu ad installarlo, puoi darmi il link della pagina così contorollo?

  7. #7
    Guest

    Predefinito

    ecco il link.. http://www.fyneworks.com/jquery/multiple-file-upload/
    a me sembra di aver fatto tutti i passaggi.. però un parere in più potrebbe tornarmi utile :)

  8. #8
    makingweb non è connesso Utente attivo
    Data registrazione
    30-06-2009
    Messaggi
    281

    Predefinito

    Scusa, forse mi sono espresso io male, intendevo il link della pagina dove tu hai installato lo script, sul tuo spazio web.

  9. #9
    Guest

    Predefinito

    eh.. non saprei come fartela vedere perchè è su una pagina a cui accedo con delle credenziali.. una specie di pannello utente che permetterà a chi vuole di caricare le foto..

  10. #10
    Guest

    Predefinito

    scusate per il doppio post ma per ora ho risolto togliendo lo script e mettendo un form con 5 campi file da cui prendo le foto da caricare.. poi sulla pagina dell'upload controllo se è un'immagine, le dimensioni e lo spazio occupato e carico il file.. dopo averlo caricato effettuo anche un ridimensionamento dell'immagine, e la nuova immagine la memorizzo in un'altra cartella.. il problema è che mi perde il nome dell'immagine che carico e quando vado a vedere sull'ftp c'è solamente quella rimpicciolita.. sembra che non mi memorizza la foto originale.. inoltre le foto che creo volevo metterle in una cartella per ogni utente (visto che si registrano) creando una specie di album come su facebook per farvi capire.. comunque volevo mostrarvi il codice per capire se è un procedimento giusto o troppo oneroso..

    Codice PHP:
    include ('connection.php');

    function
    ridimensionameto_img($nomeimage, $larg, $alt){

    global
    $source_path;
    global
    $destination_path;
    global
    $new_width;
    global
    $new_height;

    $new_width=(int)$larg*23.5/100; //Larghezza immagine ridimensionata
    $new_height=(int)$alt*23.5/100; //Altezza immagine ridimensionata
    $compression=100; //Compressione dell'immagine jpg
    $source_path="./data/img/big/"; //Diretory dove si trova il file di cui volgiamo fare la preview
    $destination_path="./data/img/little/"; //diretory dove vogliamo salvare l'immagine di preview

    $destimg=ImageCreate($new_width,$new_height) or die("<font class='testo'>Problemi nelle creazioni dell'immagine</font>");
    $srcimg=ImageCreateFromJPEG($source_path.$nomeimage) or die("<font class='testo'>Problemi nell'aprire l'immagine</font>");
    ImageCopyResized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("<font class='testo'>Problemi nel ridimensionamento</font>");
    ImageJPEG($destimg,$destination_path.$nomeimage,$compression) or die("Problemi nel salvataggio");

    }

    $err = array();
    $name_photo = array();
    $size_photo = array();
    $max_size = 3500000; //DIMENSIONE FOTO
    $num_foto = 0;
    $max_width = 3648;
    $max_height = 2736;
    $num_err = 0;
    $uploaddirbig = './data/img/big/'; //DIRECTORY FOTO GRANDE
    $uploaddirlittle = './data/img/little/'; // DIRECTORY FOTO RIDIMENSIONATE
    $errs = '';
    $errori = '';
    $msg = array();

    if(isset(
    $_POST)){
    $nick = $_COOKIE['User'];
    $title_album = strip_tags($_POST['titolo']);
    $categoria = strip_tags($_POST['categoria']);
    $data = time();
    //$nick = $_POST['nick']
    for($i=1; $i<=5; $i++) {
    if (isset(
    $_FILES['photo'.$i]) && !empty($_FILES['photo'.$i])) { // CONTROLLO SE VUOTO
    $dimensioni = getimagesize($_FILES['photo'.$i]['tmp_name']);
    $width = $dimensioni[0];
    $height = $dimensioni[1];
    $name_photo = $_FILES['photo'.$i]['name'];
    $size_photo = $_FILES['photo'.$i]['size'];
    $type = $_FILES['photo'.$i]['type'];
    if(
    $size_photo >= $max_size){ //CONTROLLO LA DIMENSIONE
    $err[] = 'L\'immagine &egrave; maggiore della dimensione massima consentita!';
    $num_err++;
    }
    if (
    $type != "image/gif" && $type != "image/jpg" && $type != "image/jpeg" && $type != "image/bmp" && $type != "image/.png") { // CONTROLLO SE E' UN IMMAGINE
    $err[] = 'Formato non corretto per la foto.';
    $num_err++;
    }
    if ((
    $width >= $max_width) && ($height >= $max_height)) {
    $err[] = 'L\'altezza e la larghezza della foto sono maggiori del consetito.';
    $num_err++;
    }
    // CONTROLLO LA DIMENSIONE
    if ($num_err == 0 ){ // SE NON CI SONO ERRORI CREO LA CARTELLA E FACCIO L'UPLOAD
    $num_err = 0;
    mkdir($uploaddirbig.$title_album, 0777); // CAMBIA SE USO copy O move_upload_file!?
    $action = copy($_FILES['photo'.$i]['tmp_name'], $uploaddirbig.$name_photo)
    if (
    $action){
    if(
    ridimensionameto_img($name_photo, $width, $height)){ // EFFETTUO IL RIDIMENSIONAMENTO
    $rid = 'e ridimensionamento';
    }else{
    $err[]= 'Ridimensionamento non riuscito!';
    $num_err++;
    }
    $sql = "INSERT INTO photos (autore, titolo, data, path, categoria) VALUES ('$nick', '$title_album', '$data', '$name_photo', '$categoria')"; // INSERISCO I DATI NEL DB
    if (mysql_query($sql, $connessione)){
    $msg[$i] = 'Caricamento '.$rid.' della foto '.$name_photo.' avvenuto con successo!';
    }else{
    $err[]='ERRORE: '. mysql_error();
    $num_err++;
    }
    }else{
    $err[] = 'Errore nel caricamento dell\'immagine! ';
    $num_err++;
    }
    if(
    $num_err != 0){
    for(
    $i = 0; $i < count($err); $i++){
    $errs .= '<li>'.$err[$i].'</li>';
    }
    }else{
    $num_foto++;
    }
    }else{
    for(
    $i = 0; $i < count($err); $i++){
    $errs .= '<li>'.$err[$i].'</li>';
    }
    $errori = 'Si sono verificati i seguenti errori nel caricamento di <b><u>'.$name_photo.'</b></u>:<br /><ul>'.$errs.'</ul>';
    }
    }
    }
    if (
    $num_foto !=0){
    for (
    $i=0; $i<= $num_foto; $i++){
    $msg_tot .= '<li>'.$msg[$i].'</li>';
    }
    }else{
    $errs = '<h3>NON SONO STATE SELEZIONATE FOTO!</h3><br /> <a href="pannello.php?op=photo" class="link_generici">TORNA INDIETRO</a>';
    }

    }
    ?>
    grazie per le risposte :)

Regole di scrittura

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