Salve ragazzi, ho un problema con un interfaccia flash che si appoggia su una pagina php per l'upload.
E' un problema strano, in quanto attraverso lo script "dovrebbe" fare l'upload in una cartella specifica su server FTP ma STRANAMENTE riesce a scrivere solo nella root e non nella cartella.
Questo è il codice che utilizzo nella prima pagina makedir.php
Codice PHP:
<?php session_start();
$cartella=$_POST['azienda'];
$login=xyz;
$password=xyz;
$conn = ftp_connect("xx.xx.xx.xx") or die("Could not connect"); @ftp_login($conn,$login,$password);
$cartella = str_replace(" ", "_", $cartella);
@ftp_mkdir($conn,$cartella);
@ftp_chdir($conn,$cartella);
$_SESSION['cartella'] = $cartella;
ftp_close($conn);
?>
Quindi mi creo la sessione, in base al nome inserito dall'utente creo la cartella sull'FTP, elimino gli spazi e mi sposto nella cartella creata per mettere dentro un file readme con i dati inseriti dall'utente (anche se ho tralasciato di copiare questa parte).
In questa pagina è presente anche un interfaccia flash per l'upload dei file che si appoggia alla pagina uplaod.php
Codice PHP:
session_start();
$login=xyz;
$password=xyz;
$conn = ftp_connect("xx.xx.xx.xx") or die("Could not connect"); ftp_login($conn,$login,$password); echo "
";
echo $_SESSION['cartella'];
echo "
";
$cartella_up = $_SESSION['cartella'];
echo $cartella_up;
echo "
";
var_dump(ftp_pwd($conn));
echo "
";
var_dump(ftp_chdir($conn,$cartella_up));
echo "
";
var_dump(ftp_pwd($conn));
if (!empty($_FILES)) { $tempFile = $_FILES['Filedata']['tmp_name']; ftp_put($conn, ($_FILES['Filedata']['name']), $tempFile, FTP_BINARY); ftp_close($conn); }
?>
come vedete faccio tutti i dump per vedere se ci sono errori e fila tutto liscio, l'unico problema, come detto ad inizio post, è che i dati non vengono messi dentro la cartella $cartella_up creata nell'ftp ma solo nella root.
Ho anche provato in questa pagina a fare un upload "manuale" con le istruzioni
Codice PHP:
$file='readme_test.htm';
$remote_file = 'readme_test.htm';
ftp_put($conn, $remote_file, $file, FTP_ASCII);
e funziona perfettamente....
Come mai nel primo caso non riesco a farlo funzionare?
Grazie in anticipo per qualsiasi suggerimento