Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [PHP] copy() ma non mi uppa il file, perchè??

    Ciao a tutti!

    io ho questo codice:
    Codice PHP:
        // controllo l'esistenza delle variabili
           
    if (!isset($_POST['name']) || !isset($_POST['descr']) ||
            !isset(
    $_POST['prezzo']) || !isset($_FILES['img']) ||
            !isset(
    $_POST['home']) || !isset($_POST['visual'])) {
        
    errore_back("Errore, non puoi entrare in questa pagina direttamente");
        } 
    // end if

        // controllo le lunghezze dei campi
        
    controlla_back($_POST['name'],5,50,"Nome articolo");
        
    controlla_back($_POST['descr'],5,5000,"Descrizione Articolo");
        
    controlla_back($_POST['prezzo'],0,10,"Prezzo");
        
    controlla_back($_POST['home'],1,1,"Home");
        
    controlla_back($_POST['visual'],1,1,"Visualizza");
        
        
    // riga di controllo, commentare o cancellare dopo il debug
        
    echo '$_FILES[\'img\'][\'name\']: [b]'.$_FILES['img']['name']."[/b]
    "
    ;
        echo 
    '$_FILES[\'img\'][\'error\']: [b]'.$_FILES['img']['error']."[/b]
    "
    ;
        echo 
    '$_FILES[\'tmp_name\']:'.$_FILES['tmp_name']."[/b]
    "
    ;
        
        
    //immagine
        
    $fai_upload false;
        if (isset(
    $_FILES['img']) && $_FILES['img']['name']!="" ) {

            
    $img_uploaded $_FILES['img'];
            
    $imgloadPart explode(".",$img_uploaded);
            
    $ext $imgloadPart[1];

        
    // prendo i parametri dal file e controllo se corretti
        
    if ($_FILES['img']['size']>50000 ||
            (
    strcasecmp($ext,"jpg")!=&&
            
    strcasecmp($ext,"gif")!=0)) {

        
    errore_back ("Le immagini possono essere '.jpg' o '.gif' e non
        devono 'pesare' piu' di 50kb"
    );
            } 
    // end if

        // assegno i parametri al file da uploadare
        
    $img_url $ext;
        
    $fai_upload true;

        } 
    // end if

        // faccio questo controllo per vedere se qualcosa è andato storto
        
    if ($fai_upload==false) {
            
    errore_back ("Devi specificare un'immagine da inserire");
        } 
    // end if

        // inserire qui la query per l'inserimento dei dati nel database
        // importante per la funzione mysql_insert_id() che da il nome all'immagine

        
    $query "INSERT INTO ricco_condiz (
                    name, descr, prezzo, home, visual
                ) VALUES (
                    \"
    $name\", \"$descr\", \"$prezzo\", \"$home\", \"$visual\"
                )"
    ;

        
    // riga di controllo, commentare o cancellare dopo il debug
        
    echo "ecco come viene la query: [b]".$query."[/b]
    "
    ;
        
        
    mysql_query($query) or errore_home ("Impossibile inserire i
                    dati nel database:"
    .mysql_error()."
    "
    );

        
    // carico l'immagine
            
    if ($fai_upload==true) {
            
    $id mysql_insert_id();
            
    $id $id.".".$ext;
        } 
    // end if
        
        // riga di controllo cancellare o commentare dopo il debug
        
    echo '$img_path.$id: [b]'.$img_path.$id."[/b]
    "
    ;
        echo 
    '$img_uploaded: [b]'.$img_uploaded."[/b]
    "
    ;

            if (
    $fai_upload==true) {
                @
    copy($img_uploaded,$img_path.$id);
                
                
    // riga di controllo, cancellare o commentare dopo il debug
                
    echo "ecco cosa cerco di uploadare: [b]".$img_uploaded."[/b]";

                if (!
    is_uploaded_file ($img_uploaded)) {
                
    errore_back ("Errore in fase di Upload");
              } 
    // end if
         
    // end if 
    mi dovrebbe uploadare i file jpg o gif minori di 50000 byte...
    ma mi da questi due errori a seconda del file...

    Warning:Unable to create 'http://localhost/img_schede/41.jpg': Invalid argument in C:\programmi\apache group\apache\htdocs\cartella\admin\nuovo_prodotto. php on line 96
    qui sembra avere letto il file originale che si chiama bottone.jpg e pesa 1/2kb.
    Warning:Unable to open 'bottone_2.jpg' for reading: No such file or directory in C:\programmi\apache group\apache\htdocs\cartella\admin\nuovo_prodotto. php on line 96
    qui sembra non aver neanche letto il file originale che si chiama bottone_2.jpg e pesa 1/2kb.

    dove può stare l'errore??

    Grazie mille!!
    Ciao!

  2. #2
    potrebbe essere questa riga:
    Codice PHP:
    $img_uploaded $_FILES['img']; 
    che deve diventare cosi?
    Codice PHP:
    $img_uploaded $_FILES['img']['name']; 
    non posso provare che non ho qui il server locale dove è il sito, e dove ho il server locale non ho la connessione ad internet...



    grazie mille!!
    Ciao!

  3. #3
    niente??
    Ciao!

  4. #4
    risolto!!

    oltre l'errore di prima,il problema stava nel fatto che questa variabile:
    $img_path era definita in config.php come:
    codice:
    $img_path = "http://".$_SERVER["THHP_HOST"]."/upfile/";
    e non come:
    codice:
    $img_path = $_SERVER["DOCUMENT_ROOT"]."/upfile/";
    tutto qui!

    ma se l'avessi chiamata

    codice:
    $img_path ="./upfile/";
    sarebbe stato lo stesso?? cioè il simpbolo ./ fa automaticamente partire dalla root del server???


    grazie mille!!

    francesco
    Ciao!

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    comunque per gli upload è buona cosa usare la funzione move_uploaded_files al posto di copy

    ciao

  6. #6
    infatti, ho modificato il codice, ma perchè move_uploaded_file è meglio di copy?

    Grazie
    Ciao!

  7. #7

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.