Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    27

    [php] upload via ftp in locale con filezilla server

    salve a tutti, ho installato easyphp e filezilla server.

    devo realizzare una pagina di upload files, e voglio testarla in locale.

    purtroppo mi restituisce sempre "non è stato possibile caricare il file".

    idee o suggerimenti?

    noto che collegandomi via browser succede una cosa strana: all'indirizzo ftp://localhost:21 mi si connette senza password, poi devo cliccare due volte su "vai alla cartella superiore" (con ff) ed infine mi mostra le due cartelle "pubblica" e "privata". in effetti l'indirizzo delle due cartelle è "ftp://localhost/../../privata/" e "ftp://localhost/../../pubblica/".

    che sia un problema di path?

    comunque, ecco le due pagine.

    il mio form è

    Codice PHP:
    <form name="uploadForm" action="index.php?p=controlpanel&action=ftpUpload" method="POST" enctype="multipart/form-data">

    <
    input type="file" name="myfile" id="fileUpload" onchange="checkFileUpload(this.value)"; /> 

    Seleziona la cartella di pubblicazione
    <
    select name="cartella">
    <
    option value="pubblica" selected>Cartella pubblica</option>
    <
    option value="privata">Cartella privata</option>
    </
    select>


    <
    input type="submit" value="Carica file" />
    </
    form

    mentre la mia pagina php per caricare il file è

    Codice PHP:
    <?php 

    // Dati di accesso
    $host 'localhost';
    $usr 'user';
    $pwd 'password';

    $_FILES['myfile']['name'] = isset($_FILES['myfile']['name']) ? $_FILES['myfile']['name'] : $_FILES['myfile']['name'] = "";

    echo 
    "Hai scelto di caricare il file ".$_FILES['myfile']['name']." nella cartella ".$_POST['cartella'];

    if (
    $_FILES['myfile']['name'] != "") {

    ?>
    [cut]
    <?php

        $file_locale 
    $_FILES['myfile']['name'];

        
    $ftp_path 'localhost/'.$_POST['cartella'].'/'.$_FILES['myfile']['name'];

        
    $conn_id ftp_connect($host21); 

        
    ftp_login($conn_id$usr$pwd); 

        
    $upload ftp_put($conn_id$ftp_path$file_localeFTP_BINARY);

        if (!
    $upload) {
        
            echo 
    "Non è stato possibile caricare il file";
            
            }

        
    ftp_close($conn_id);

        }

    else {

    ?>
    [cut]
    Non hai selezionato nessun file

    <?php

        
    }

    ?>
    sinceramente non vedo errori nel codice, ma ovviamente questo non significa che non ci siano.

  2. #2
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    Non vorrei dire una cavolata, ma sei sicuro che sul tuo server il file venga caricato correttamente? Non vedo una move_uploaded_file che passa dal nome temporaneo al nome vero del file..

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    27
    ora l'ho corretto come mi dici tu:

    Codice PHP:
    <?php 

    // FTP access parameters:
    $host '127.0.0.1';
    $usr 'user';
    $pwd 'password';

    $_FILES['myfile']['name'] = isset($_FILES['myfile']['name']) ? $_FILES['myfile']['name'] : $_FILES['myfile']['name'] = "";

    echo 
    "Hai scelto di caricare il file ".$_FILES['myfile']['name']." nella cartella ".$_POST['cartella'];

    if (
    $_FILES['myfile']['name'] != "") {

    ?>

    [cut]

    <?php

        
        
        
    // file to upload:
        
    $local_file $_FILES['myfile']['name'];
        
    $ftp_path "/".$_POST['cartella']."/".$_FILES['myfile']['name'];
        
        
    // connect to FTP server (port 21)
        
    $conn_id ftp_connect($host21); 

        
    // send access parameters
        
    ftp_login($conn_id$usr$pwd); 
        
        
    // turn on passive mode transfers (some servers need this)
        
    ftp_pasv($conn_idtrue);

        
    // perform file upload
        
    $upload ftp_put($conn_id$ftp_path$local_fileFTP_BINARY);

        if (!
    is_uploaded_file($_FILES['myfile']['tmp_name'])) {

        echo 
    "Errore: UPLOAD FALLITO";
        
        echo 
    $_FILES['myfile']['error'];
        
        }

        else {
        
        echo 
    $_FILES['myfile']['tmp_name']."
    "
    ;
        echo 
    $ftp_path;
        
        }
        
        
    move_uploaded_file($_FILES['myfile']['tmp_name'], $ftp_path);
        
        
        if (!
    $upload) {
        
            echo 
    "
    Non è stato possibile caricare il file"
    ;
            
            }
            
        
    // close the FTP stream
        
    ftp_close($conn_id);

        }

    else {

    ?>

    [cut]

    Non hai selezionato nessun file

    <?php

        
    }

    ?>
    ma ancora non funziona. tuttavia mi mostra che il file è stato caricato all'indirizzo

    codice:
    C:\Programmi\EasyPHP 3.0\tmp\php116.tmp
    non so, veramente.

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