Visualizzazione dei risultati da 1 a 7 su 7

Discussione: upload immagine

  1. #1

    upload immagine

    Ciao a tutti, devo fare un upload di immagine, ho usato il seguente codice:
    Codice PHP:
    $dir=$_SERVER['DOCUMENT_ROOT'].'/upload';
    $filename=$id.'immagine'.$_FILES['miofile']['name'];
    if(
    trim($_FILES["miofile"]["name"])=='')     {die("non hai indicato il file");}     $tipi_consentiti=array('image/gif','image/x-png','image/pjpeg','image/jpeg');     if(!in_array($_FILES['miofile']['type'],$tipi_consentiti))
    {die(
    'tipo file non consentito');}
    if(
    is_uploaded_file($_FILES["miofile"]["tmp_name"]))     {     move_uploaded_file($_FILES["miofile"]["tmp_name"],$dir.'/'.$filename) or die('errore'); $sql='UPDATE attivita SET att_immagine="'.$filename.'" WHERE att_id='.$id
    mysql_query($sql); 
    mi da i seguenti errori:

    Notice: Undefined index: DOCUMENT_ROOT in D:\Inetpub\webs\miosito\miosito\utente\scheda_uten te.php on line 193

    Notice: Undefined index: miofile in D:\Inetpub\webs\miosito\miosito\utente\scheda_uten te.php on line 194

    Notice: Undefined index: miofile in D:\Inetpub\webs\miosito\miosito\utente\scheda_uten te.php on line 195
    non hai indicato il file


    ovvero alle righe:

    Codice PHP:
    $dir=$_SERVER['DOCUMENT_ROOT'].'/upload';     $filename=$id.'immagine'.$_FILES['miofile']['name'];
    if(
    trim($_FILES["miofile"]["name"])==''
    chi può aiutarmi per favore? grazie
    5ym0

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    beh basta leggere i messaggi di errore
    - non hai definito la costante DOCUMENT_ROOT da nessuna parte (oppure non hai incluso il file che ne contiene la definizione)
    - non hai $_FILES['miofile'] tra le variabili in ingresso, quindi probabilmente nel form HTML che passa in cui fai lo sfoglia e scegli il file il campo inpunt non si chiama 'miofile'
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  3. #3
    posto il cod del form:

    Codice PHP:
    <form name="info" id="info" action="?azione=salva" method="post" enctype="multipart/form-data">

    <
    label for="miofile">miofile</label>

    <
    input type="file" id="miofile" name="miofile" />

    <
    input type="submit" /> 
    5ym0

  4. #4
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    431
    Può capitare che in ambiente windows la variabile $_SERVER['DOCUMENT_ROOT'] non sia definita, prova modificare il codice in questo modo:

    Codice PHP:
    if(!isset($_SERVER['DOCUMENT_ROOT'])){ if(isset($_SERVER['SCRIPT_FILENAME'])){
    $_SERVER['DOCUMENT_ROOT'] = str_replace'\\''/'substr($_SERVER['SCRIPT_FILENAME'], 00-strlen($_SERVER['PHP_SELF'])));
    }; };
    if(!isset(
    $_SERVER['DOCUMENT_ROOT'])){ if(isset($_SERVER['PATH_TRANSLATED'])){
    $_SERVER['DOCUMENT_ROOT'] = str_replace'\\''/'substr(str_replace('\\\\''\\'$_SERVER['PATH_TRANSLATED']), 00-strlen($_SERVER['PHP_SELF'])));
    }; };

    $dir=$_SERVER['DOCUMENT_ROOT'].'/upload';
    $filename=$id.'immagine'.$_FILES['miofile']['name'];
    if(
    trim($_FILES["miofile"]["name"])=='')     {die("non hai indicato il file");}     $tipi_consentiti=array('image/gif','image/x-png','image/pjpeg','image/jpeg');     if(!in_array($_FILES['miofile']['type'],$tipi_consentiti))
    {die(
    'tipo file non consentito');}
    if(
    is_uploaded_file($_FILES["miofile"]["tmp_name"]))     {     move_uploaded_file($_FILES["miofile"]["tmp_name"],$dir.'/'.$filename) or die('errore'); $sql='UPDATE attivita SET att_immagine="'.$filename.'" WHERE att_id='.$id;
    mysql_query($sql); 
    Comunque l'action del form, messa in quel modo non mi piace molto... sei sicuro che il submit venga fatto correttamente?

  5. #5
    Utente di HTML.it L'avatar di jeppox
    Registrato dal
    Mar 2007
    Messaggi
    436
    devi settare le variabili in modo corretto come per es.:

    Codice PHP:
    $filename = isset($_FILES["miofile"]["name"]) ? $_FILES["miofile"]["name"] : ''

  6. #6
    ok ragazzi ho risolto tutto grazie, il primo problema che in ambiente windows dovevo inserire
    Codice PHP:
    if(!isset($_SERVER["DOCUMENT_ROOT"])) {$_SERVER["DOCUMENT_ROOT"]=substr($_SERVER['SCRIPT_FILENAME'] , , -strlen($_SERVER['PHP_SELF'])+); } 
    mentre per il resto non mi dava permessi alle altre cartelle ho messo la cartella public come predefinita per gli upload e ora funziona tutto correttamente grazie ciao!
    5ym0

  7. #7
    Utente di HTML.it L'avatar di jeppox
    Registrato dal
    Mar 2007
    Messaggi
    436
    molto strano, negli errori sopra non parlava di permessi mancanti ma semplicemente di variabili che non erano definite.

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.