Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    6

    problema upload immagini

    ciao,ho un piccolo problema.
    ho scritto script che dovrebbe permettere di caricare immagini in una directory e delle informazioni in una tabella di un database...
    ora..le informazioni arrivano alla tabella e correttamente mentre la directory rimane vuota e nessuna immagine viene salvata...posto il codice.
    Grazie in anticipo
    Ps: la cartella images si trova nello stesso percorso in cui è hostato questo script.


    <?php
    include ('dbconn.php');

    $dir = './images';

    //controllo sul caricamento delle immagini
    if ($_FILE['uploadfile']['error'] != UPLOAD_ERR_OK)
    {
    switch ($_FILES['uploadfile']['error'])
    {
    case UPLOAD_ERR_INI_SIZE:
    die('the upload file exceeds the max size');
    break;

    case ERROR_ERR_FORM_SIZE:
    die('the upload file exceeds the max size');
    break;

    case UPLOAD_ERR_PARTIAL:
    die('the upload was not uploaded');
    break;

    case UPLOAD_ERR_NO_FILE:
    die('no file uploaded');
    break;

    case UPLOAD_ERR_NO_TMP_DIR:
    die('server missing folder');
    break;

    case UPLOAD_ERR_CANT_WRITE:
    die('the server failed to write the upload file');
    break;

    case UPLOAD_ERR_EXTENSION:
    die('extension error');
    break;
    }
    }

    // recupero le informazioni sull'immagine caricata

    $image_username = $_POST['username'];
    $image_date = date('Y-m-d');

    list($widht, $height, $type, $attr) =
    getimagesize($_FILES['uploadfile']['tmp_name']);

    //effettuo un controllo sul tipo di file caricato accertandomi che sia effettivamente un file immagine


    switch ($type)
    {
    case IMAGETYPE_GIF:
    $image = imagecreatefromgif($_FILE['uploadfile']['tmp_name'])
    or die('file not supportated.');
    $ext = '.gif';
    break;

    case IMAGETYPE_JPEG:
    $image = imagecreatefromjpeg($_FILE['uploadfile']['tmp_name'])
    or die('file not supportated.');
    $ext = '.jpg';
    break;

    case IMAGETYPE_PNG:
    $image = imagecreatefrompng($_FILE['uploadfile']['tmp_name'])
    or die('file not supportated.');
    $ext = '.png';
    break;
    }

    // inserisco nella tabella le informazioni sull'immagine caricata

    $query = 'INSERT INTO images(image_username, image_date) VALUES("' . $image_username . '", "' . $image_date . '")';

    $result = mysql_query ($query, $connessione) or die(mysql_error());

    // recupero il valore image_id creato automaticamente nella tabella mediante il suo inserimento

    $last_id = mysql_insert_id();

    //utilizzo l'id dell'immagine caricata come nome dell'immagine stessa essendo l'id univoco evito
    //sovrascritture

    $imagename = $last_id . $ext;

    //aggiorno la tabella con il nome finale dell'immagine

    $query = 'UPDATE images SET image_filename = "' . $imagename . '" WHERE image_id = ' . $last_id;

    $result = mysql_query($query, $connessione) or die (mysql_error());

    //salvo l'immagine nella directory image

    switch ($type)
    {
    case IMAGETYPE_GIF:
    imagegif($image, $dir . '/' . $imagename);
    break;

    case IMAGETYPE_JPEG:
    imagejpeg($image, $dir . '/' . $imagename, 100);
    break;

    case IMAGETYPE_PNG:
    imagepng($image, $dir . '/' . $imagename);
    break;
    }
    ?>

  2. #2
    Che cosa restituisce questo codice?

    Codice PHP:
    var_dump(is_writable($dir)); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    6
    inserendo il codice,la pagina mi restituisce

    bool(true) file not supportated.

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    dopo la chiamata a getimagesize fai un
    Codice PHP:
    var_dump($type);         
    var_dump(gd_info()); 
    e incolla la risposta.

    ps: "not supportated" e' un messaggio fantastico

  5. #5
    ti da quell'errore perché tu tenti di aprire il file direttamente dalla cartella temporanea che al 99% è tagliata fuori dall'open base dir/safe mode

    spostalo con move_uploaded_file in una tua cartella prima di aprirlo, ergo prima di lanciare questo:
    codice:
    list($widht, $height, $type, $attr) = getimagesize($_FILES['uploadfile']['tmp_name']);
    www.php.net/move_uploaded_file

  6. #6
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    getimagesize gli restituirebbe false e lo switch non restituirebbe nulla se lui avesse dei problemi con l'apertura.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    6
    Originariamente inviato da bubi1
    dopo la chiamata a getimagesize fai un
    Codice PHP:
    var_dump($type);         
    var_dump(gd_info()); 
    e incolla la risposta.

    ps: "not supportated" e' un messaggio fantastico
    mmm ecco qui

    int(2) array(12) { ["GD Version"]=> string(13) "2.0 or higher" ["FreeType Support"]=> bool(true) ["FreeType Linkage"]=> string(13) "with freetype" ["T1Lib Support"]=> bool(true) ["GIF Read Support"]=> bool(true) ["GIF Create Support"]=> bool(true) ["JPG Support"]=> bool(true) ["PNG Support"]=> bool(true) ["WBMP Support"]=> bool(true) ["XPM Support"]=> bool(false) ["XBM Support"]=> bool(false) ["JIS-mapped Japanese Font Support"]=> bool(false) } file not supportated.

  8. #8
    vero, però l'alternativa è che php è stato, volutamente, compilato con le gd senza supporto alle png e/o alle gif e/o alle jpeg

  9. #9
    matt, come ti ho detto qualche post prima prova a spostare il file con move_uploaded_file in una cartella tua e poi fallo leggere da li dentro

  10. #10
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Originariamente inviato da daniele_dll
    vero, però l'alternativa è che php è stato, volutamente, compilato con le gd senza supporto alle png e/o alle gif e/o alle jpeg
    Infatti era questo che volevo verificare..
    E invece l'immagine e' JPG e lui ha ["JPG Support"]=> bool(true), quindi non e' questo il problema

    Magari l'immagine e' corrotta..

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.