Upload fichier DD vers serveur distant

Fermé
thunder - 20 sept. 2007 à 13:35
 enfer - 2 nov. 2008 à 23:27
Bonjour,
j'ai deja posté ce message dans le forum programmation (merci a fred d'avoir essayé), mais j'ai l'impression que pour traiter du PHP c'est ici (le PHP peut etre la cause de mon pb)

j'essaie d'uploader un fichier de mon DD vers un serveur en PHP a partir d'une page html.
le site est hebergé chez lycos.

mon script fonctionne tres bien si j'upload vers le serveur lycos mais pas si je veux l'uploader vers un autre serveur...

j'utilise la commande FTP_PUT.

le script reste le meme entre les deux test, seul les parametres de connexion change. Pour simplifier le test, il n'y a pas de repertoire de destination (copie sous la racine).


si upload vers lycos : ok fichier sous la racine

si upload vers autre serveur : la page html bloque (page blanche) et je retrouve le fichier sur serveur mais vide (juste le nom).


quelqu'un a t'il une ID du pourquoi ???


Merci
A voir également:

9 réponses

Bonjour à tous,
J'ai un problème similaire, j'ai un script d'upload avec ftp_put qui fonctionne pour des fichiers de moins de 16 Mo mais dès que je dépasse cette taille, le fichier uploadé sur le ftp a une taille de 0 Mo. je suis sur un serveur mutualisé OVH dont le upload_max_filesize est 16 Mo. Cela est il lié?? Ya t il un moyen de mettre en place un systeme d'upload via formulaire pour des fichiers depassant la taille limite quand on a pas acces au php.ini?
Si quelqu'un a la réponse, j'offre beaucoup de gratitude
Hasta luego
1
Cela m'intéresserais beaucoup si vous pouviez me fournir le source de votre script d'upload avec ftp_put qui fonctionne pour des fichiers de moins de 16 Mo.
La limitation de 16 Mo de me gène nullement, et je n'arrive pas à réaliser ce script.
Merci d'avance
Eric
0
pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
20 sept. 2007 à 17:42
Parce que le 1er serveur web est configuré pour accepter les requetes FTP et pas le second.

En tout cas, cherche de ce côté...
0
j'y avais pensé aussi,
mais dans ce cas pourquoi est ce que je peux uploader un fichier de mon DD vers ce meme second serveur a partir du site net2ftp ?
0
pitxu Messages postés 689 Date d'inscription vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
21 sept. 2007 à 01:58
ok ... donc c'est pas ça.

Le fait que le fichier se créé mais qu'il soit vide ça me fait penser aux sessions, tu en utilises ?
Et quelle taille fait le fichier que tu essaies d'uploader ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
juvabien Messages postés 13 Date d'inscription vendredi 21 septembre 2007 Statut Membre Dernière intervention 24 septembre 2007 2
21 sept. 2007 à 04:04
Je ne m'y connais pas encore trop en gestions de serveur et compagnie, mais le problême ne viendrait t'il pas du temps maximum d'executions des scripts qu'utilisent certains hébergeurs (free par exemple limite à 30 secondes leur execution si je me rappel bien)
0
J’ai pas le script devant les yeux, mais j'utilise bien des variables session qui me servent essentiellement a identifier un visiteur.
Pour le moment elles n'interviennent pas dans le bout de script php qui sert a uploader.

j'ai essayé plusieurs tailles, mais même les plus petits ne passent pas (fichier txt de quelques octets). je ne pense pas que le temps de connexion et de transfert soit la cause étant donné que le même fichier uploadé avec net2ftp met a peine 5 s.

c'est vrai que ça ressemble bcp a une boucle meme si je n'en utilise pas.
le code se décompose comme ceci ( je posterais le code cet aprem ) : selection du fichier sur dd => connexion au serveur => envois au serveur => fermeture de la connexion.

Si je désactive l'envoi au serveur, tous se passe bien, la connexion semble établie. dès que j'essaye de faire le FTP_PUT blocage au bout de 20 a 30s et j'ai un fichier vide sur serveur.

Merci de votre aide.
0
voici donc le script :


<FORM action="" method="POST" ENCTYPE="multipart/form-data">

<INPUT name="fichier" type="file" >
<INPUT name="valider" type="submit" value="valider">
</FORM>

<?

if(isset($_POST['valider']) && $_FILES['fichier']['tmp_name'] !="") envoi_ftp();

function envoi_ftp() {
$ftp_server='XXXX.YYYY.ZZZ';
$ftp_user_name='toto';
$ftp_user_pass='pwd';

echo " <br>Mise en place d'une connexion basique";
$conn_id = ftp_connect($ftp_server) or die("<br>Impossible de se connecter au serveur $ftp_server");

echo " <br>Identification avec un nom d'utilisateur et un mot de passe ";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

echo " <br>Verification de la connexion ";
if ((!$conn_id) || (!$login_result))
{
echo "<br>La connexion FTP a echoue !<br>";
echo "<br>Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name ";
exit;
}
else {
echo "<br>Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name";
}

$fichier = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
$type = $_FILES['fichier']['type'];
$erreur = $_FILES['fichier']['error'];

echo "<br>Nom originel => $fichier ";
echo "<br>Taille => $taille ";
echo "<br>Adresse temporaire sur le serveur => $tmp ";
echo "<br>Type de fichier => $type ";
echo "<br>Code erreur => $erreur. ";

$fichier = $_FILES['fichier']['name'];
$source_file = $_FILES['fichier']['tmp_name'];
$destination_file = '/'.$fichier;

echo " <br>Chargement d'un fichier ";
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

echo " <br>Verification du status du chargement ";
if (!$upload)
{
echo "<br>Le chargement FTP a echoue";
}
else {
echo "<br>Chargement de $source_file vers $ftp_server en tant que $destination_file";
}
// Fermeture du flux FTP
ftp_close($conn_id);
}
?>
0
Bonjour,


Moi aussi j'ai le meme probleme, mon fichier "donnees.csv" de mon DD est bien telecharger sur mon FTP de free, mais il reste desesperement vide.

Voici mon code :

// Mise en place d'une connexion basique
$ftp_server="ftpperso.free.fr";
$ftp_user_name = "moil";
$ftp_user_pass = "paspas";

$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
echo "La connexion FTP a échoué !";
echo "Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name<br>";
exit;
} else {
echo "Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name<br>";
}

// Chargement d'un fichier


$dest = "../domotique/donnees/donnees.csv"; // endroit ou je veux copier mon fichier donnees.csv sur le serveur ftp de free

$nom_fichier = "..//domotique/donnees/donnees.csv"; // mon fichier donnees.csv sur mon DD
$fp = fopen ($nom_fichier,"w"); // je suis obliger de l'ouvrir en ecriture en local sinon ça marche pas et pour recuperer la variable $fp


$upload = ftp_fput($conn_id, $dest, $fp, FTP_ASCII );


// Vérification du status du chargement
if (!$upload) {
echo "Le chargement FTP a échoué!<br>";
} else {
echo "Chargement de $nom_fichier vers $fp en tant que $dest";
}

// Fermeture du flux FTP
ftp_close($conn_id);
fclose($fp);
0
ton fichier doit etre bien sauvegardé dans le premier serveur avant d'etre transferer
tu ne peut pas envoyer un fichier temporaire
0
Bonjour,

as tu aussi essayé en mode binaire ?
met il quand meme que la connexion est etablie ?
visuellement, que se passe t'il ? page bloque etc...
0