Buongiorno,
ho un form che mi carica alcuni dati su di un DB e anche mi fa upload nella cartella public del mio hosting (avendo hosting windows su aruba è l'unica cartella dove posso fare questa operazione).

Conoscendo bene i rischi di tenere dati nella cartella public ho creato un php che tramite la funzione ftp_put mi sposta i file dalla public alla cartella di destinazione sempre dello stesso spazio.

ecco il codice della pagina ftp_function.php :

Codice PHP:
<?php
$ftp_server 
"xxxxxxxx";$ftp_user_name "xxxxxxxx";$ftp_user_pass "xxxxxxxx";

function 
moveFileViaFTP($source_file$destination_file$ftp_server$ftp_user_name$ftp_user_pass) {    $conn_id ftp_connect($ftp_server);    

$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);

    if ((!
$conn_id) || (!$login_result)) {        echo "La connessione FTP è fallita!";        echo "Tentativo di connessione a $ftp_server per l'utente $ftp_user_name";        return false;    }
    
$upload ftp_pasv($conn_idtrue); // Imposta la modalità passiva
if (!$upload) {    echo "Errore nell'impostazione della modalità passiva FTP.";    exit;}
if ((!
$conn_id) || (!$login_result)) {    echo "La connessione FTP è fallita!";    echo "Tentativo di connessione a $ftp_server per l'utente $ftp_user_name";    exit;} else {    echo "Connessione FTP stabilita con successo!";}
echo 
"Source file: " $source_file "<br>";echo "Destination file: " $destination_file "<br>"


$upload ftp_put($conn_id$destination_file$source_fileFTP_BINARY);


if (!
$upload) {    $error error_get_last();    echo "Errore nello spostamento del file via FTP: " $error['message'];    exit;}

    
ftp_quit($conn_id);
    return 
$upload;}
mentre per gestire le foto

Codice PHP:
if ($_FILES["foto1"]["name"] != "") {    if (isImageFile($_FILES["foto1"])) {        $foto1 $targetDir $_FILES["foto1"]["name"];        if (!move_uploaded_file($_FILES["foto1"]["tmp_name"], $foto1)) {            echo "Errore nel caricamento della foto 1.";            exit;        } else {            $destination_file "/fotomaglie/" $anno "_" $anno_successivo "/" $_FILES["foto1"]["name"];            $source_file $foto1;            if (!moveFileViaFTP($source_file$destination_file$ftp_server$ftp_user_name$ftp_user_pass)) {                echo "Errore nello spostamento della foto 1 via FTP.";                exit;            }        }    } else {        echo "Errore: il file 1 non è un'immagine.";        exit;    }} 
ecco l'errore che ricevo:

Connessione FTP stabilita con successo!Source file: public/fotomaglie/2022_2023/20230511_081305.jpg
Destination file: /fotomaglie/2022_2023/20230511_081305.jpg

Warning: ftp_put(): End in D:\inetpub\webs\la-maglia-rosanerocom\ftp_function.php on line 35
Errore nello spostamento del file via FTP: ftp_put(): End




Credo che il problema dei permessi delle cartelle DIVERSE DA PUBLIC, con FTP, spostando il file che è già dentro il server.. non ci sia
Mi aiutate?? Grazie