Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    problema upload file via form

    Ciao a tutti!
    ho messo giu' uno script php per fare un upload da un form, ma non capisco x' non funziona... qualcuno puo' darmi una mano?
    questo e' il codice:

    codice:
    <form name="inserimento" method="post" action="prodotti.php?action=insert_product enctype="multipart/form-data">
    <input type="file" name="immagine">
    
    <?php 
    
    $path_to_images = '\images\';
    
    switch ($action) {
                 case 'insert_product':
    
                 if (isset($_POST['immagine'])) {
                    $sql_data_array['immagine'] = mysql_escape_string ($_POST['immagine']);
                    move_uploaded_file($_FILES['immagine']['tmp_name'], $path_to_images . $_FILES['immagine']['name']);
                 }
    ?>
    sia il form che lo script stanno nella stessa pagina, in cui ci sono altri campi del form (questo e' solo un estratto); gli altri campi del form invece funzionano!
    cercando di capire x' non funziona ho visto che non passa l'if, e infatti mandando in output l'array $_POST manca proprio il valore $_POST['immagine']
    ma non riesco a spiegarmi il perche'!
    qualcuno puo' aiutarmi pls?

    grazie e buon lavoro,
    teo

  2. #2
    Per il caricamento dei file trovi i dati passati via post nell'array $_FILES

    Ciao
    In a world without walls and fences - who needs windows and gates ?

  3. #3
    ma il nome del file non dovrebbe stare anche nell'array $_POST?
    almeno stando al manuale del PHP

    ciao, teo

  4. #4
    Mi spiego meglio:
    se usi
    <input type="file" name="immagine">

    via post troverai

    $_FILES['immagine']['name']
    $_FILES['immagine']['type']
    $_FILES['immagine']['size']
    $_FILES['immagine']['tmp_name']
    $_FILES['immagine']['error']

    e con questi

    switch ($action) {
    case 'insert_product':

    if (isset($_FILES['immagine']["name"])) {
    $sql_data_array['immagine'] = mysql_escape_string ($_FILES['immagine']["name"]);
    move_uploaded_file($_FILES['immagine']['
    tmp_name'], $path_to_images . $_FILES['immagine']['name']);
    }


    Ciao
    In a world without walls and fences - who needs windows and gates ?

  5. #5
    Per quanto ne so ci sono due casi distinti

    register global on

    e ti trovi il file con il nome passato via post
    nel tuo caso
    $immagine["name"]


    register global off

    $HTTP_POST_FILES["name"]
    $_FILES["name"]


    Non mi pare che nell'array $_POST e $HTTP_POST_VARS
    sia registrato il nome del file


    Fabio
    In a world without walls and fences - who needs windows and gates ?

  6. #6
    grazie x l'aiuto che mi stai dando!
    effettivamente pensandoci un attimo cosi' e' il modo giusto; pero' mi sembrava dal manuale del php che in $_POST['immagine'] dovesse starci almeno il nome
    ho comunque fatto la sostituzione mentre scrivevi, ma ottengo un errore:

    codice:
    Warning: move_uploaded_file(/images/Image1.jpg): failed to open stream: No such file or directory in /web/htdocs/xxxxxxxxxxxxxx/prodotti.php on line 189
    
    Warning: move_uploaded_file(): Unable to move '/tmp/phpgpLDI5' to '/images/Image1.jpg' in /web/htdocs/xxxxxxxxxxxx/prodotti.php on line 189
    la directory ha i permessi settati a 777, quindi...???

    grazie ancora!

    ciao, teo

  7. #7
    Posta la rica che riguarda il move_uploaded_file() completa senza omissioni...

    Non possiamo risolvere niente se non vediamo il codice... :rollo:
    [ DarCas The Architect ]
    [ The DarCas Of Blog ]
    Chuck Norris riesce a trovare un pagliaio dentro a un ago
    :maLOL:

  8. #8
    Prova ad impostare il percorso completo in $path_to_images


    Ciao, Fabio
    In a world without walls and fences - who needs windows and gates ?

  9. #9
    Originariamente inviato da Darkhorizont
    Prova ad impostare il percorso completo in $path_to_images


    Ciao, Fabio
    Giusto non avevo fatto caso alla riga..

    Il path dev'essere completo.. lo puoi ricavare con $_SERVER['DOCUMENT_ROOT']..

    quindi se la tua cartella è /images/ devi fare:
    codice:
    move_uploaded_file( $_FILES['immagine']['tmp_name'], "{$_SERVER['DOCUMENT_ROOT']}/images/{$_FILES['immagine']['name']}");
    e vedrai che funzia!

    N.B.
    se sei su *NIX la cartella /images/ deve avere 777 di permessi.
    [ DarCas The Architect ]
    [ The DarCas Of Blog ]
    Chuck Norris riesce a trovare un pagliaio dentro a un ago
    :maLOL:

  10. #10
    che si tratti di un problema di slash?
    che barra ci va, la slash o la backslash?
    ora e' cosi':

    codice:
    move_uploaded_file($_FILES['immagine']['tmp_name'], '/images/' . $_FILES['immagine']['name']);
    ciao e grazie
    teo

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 © 2026 vBulletin Solutions, Inc. All rights reserved.