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($host, 21);
ftp_login($conn_id, $usr, $pwd);
$upload = ftp_put($conn_id, $ftp_path, $file_locale, FTP_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.