Upload vers FTP

Eléphanteau du PHP | 24 Messages

27 juin 2006, 23:41

Bonjour,

J'essaye d'uploader de gros fichiers depuis un formulaire vers un ftp.
Voilà le script:


$time = addslashes($_POST['time']);  echo 'time: '.$time.'<br /><br />';
$categorie = addslashes($_POST['categorie']);

$queryNomCategorie = " SELECT * FROM galerie_categorie WHERE galerie_categorie.id=$categorie";
$resultNomCategorie = mysql_query($queryNomCategorie, $link);
$rowNomCategorie = mysql_fetch_array($resultNomCategorie);
echo $rowNomCategorie['nom'];


$photoTemp = $_FILES['image']["tmp_name"];
$photoClean = addslashes($_FILES['image']["name"]);
echo 'PHOTOTEMP/        '.$photoTemp .'<br />';
$dossierPreview =  'projet/images/galerie/';
$pathPreviewCategorie = $dossierPreview.$rowNomCategorie["nom"];
$date = '/'.$time;
$pathPreviewTime = $pathPreviewCategorie.$date;

$dossierPreviewImage = '/images/';
$pathPreviewImage = $pathPreviewTime.$dossierPreviewImage;
//echo $pathPreviewImage ;

// création de la connexion
$conn_id = @ftp_connect("ftpperso.free.fr");
// authentification avec nom de compte et mot de passe
$login = 'monLogin';
$mdp = 'monMotDePasse;
$login_result = @ftp_login($conn_id, $login, $mdp);
ftp_pasv($conn_id, TRUE);
// vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
        echo "La connexion FTP a échoué!";
//        echo "Tentative de connexion à $ftp_server avec $ftp_user_name";
        die;
    } else {
        echo "Connecté sur serveur distant<br>";
    }
// téléchargement d'un fichier
set_time_limit(210);
// if (!is_dir($pathPreviewCategorie))
@ftp_mkdir($conn_id,$pathPreviewCategorie);
// if (!is_dir($pathPreviewTime))
@ftp_mkdir($conn_id,$pathPreviewTime);
// if (!is_dir($pathPreviewImage))
@ftp_mkdir($conn_id,$pathPreviewImage);
$pathImage = $pathPreviewImage.$photoClean ;
$upload = ftp_put($conn_id ,  $pathImage ,$photoTemp   , FTP_BINARY );
// Vérification de téléchargement
if (!$upload) {
        echo "<br>Le téléchargement Ftp a échoué!";
    } else {
        echo "<br>Téléchargement de $photoClean sur serveur distant";
    }
// fermeture de la connexion FTP.
ftp_quit($conn_id);


/*
L'upload vers un ftp marche parfaitement qd le formulaire est sur un pc en local, upload de fichier de 15mo, mais dès qu'on essaye d'uploader depuis une page de formulaire hébergée par exemple par free il y a ce msg d'erreur:

Code : Tout sélectionner

Fatal error: Call to undefined function: ftp_connect() in /mnt/100/sdc/a/4/files1/files2/backoffice/galerie/ajouterGalerie.php on line 66
Est-ce qqn saurait pourquoi le script marche depuis une page en local et non sur un server?
Est-ce que les fonctions ftp sont désactivées chez free?

Merci :lol:

Eléphant du PHP | 74 Messages

28 juin 2006, 01:29

je suis pas sûr mais je crois que l'upload depuis php est limité à 2 mo chez free :)

Mammouth du PHP | 19672 Messages

28 juin 2006, 07:43

@datesta : Limité à 2Mo pour l'upload HTTP, pas pour le FTP.

@ gto55 : les fonction ftp sont effectivement désactivées chez free il me semble, vérifie dans la FAQ de free.fr, c'est indiqué.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

28 juin 2006, 17:09

Merci :pouce: