Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2007, 12h08   #1
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 81
Points : 12
Points : 12
Par défaut [Upload] Upload sur FTP

bonjour j'ai un souci je dois uploader un fichier excel(pour ensuite le renommer) mais mon souci arrive au moment ou je veux changer le chemin temporaire avec le chemin du dossier du ftp je n'y arrive pas.
voici ce que cela donne:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<form method="post" action='' enctype="multipart/form-data">
<input type="file" name="excel" accept="*.csv"/>
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
 <input type="submit" value="upload"/>
 
numéro de téléphone: <BR>
<?php 
echo $_FILES['parcours']['tmp_name'];
echo $_FILES['parcours']['name'];
 
if(isset($_FILES['excel']))
{
$dossier = 'www/email';
$fichier = basename($_FILES['parcours']['name']);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) 
//Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
yohann007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 14h27   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Il n'y a pas de FTP là-dedans

Le code est incomplet mais il est probable qu'il y ait une incohérence :
Code :
<input type="file" name="excel" accept="*.csv"/>
Code :
1
2
3
4
echo $_FILES['parcours']['tmp_name'];
echo $_FILES['parcours']['name'];
$fichier = basename($_FILES['parcours']['name']);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier))
Tous les noms diffèrent
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 17h41   #3
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 81
Points : 12
Points : 12
non j'ai modifier sa dès que je l'ai vu met j'arrive pas a transférer le fichier dans le répertoire du ftp que je désire
yohann007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 17h52   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
  • Mettez à jour votre code dans votre post qu'on y voit plus clair
  • Il ne s'agit pas d'un upload FTP mais HTTP
  • Quels sont les messages d'erreurs obtenus (en activant si nécessaire l'affichage des erreurs et en positionnant error_reporting à sa valeur maximale : E_ALL) ?
  • Quel est le comportement de votre script ? Quel cheminement suit-il ? Quelles parties du script ne sont pas exécutées ?
  • Avez-vous vérifié que vous aviez le droit d'écrire dans ce répertoire (test que l'on peut intégrer au script via la fonction is_writ(e)able) ?

Il doit manquer un séparateur ici :
Code :
$dossier = 'www/email/';
Ou ici :
Code :
if(move_uploaded_file($_FILES['excel']['tmp_name'], $dossier . DIRECTORY_SEPARATOR . $fichier))
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 19h10   #5
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 81
Points : 12
Points : 12
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<form method="post" action='#' enctype="multipart/form-data">
<input type="file" name="excel" accept="*.csv"/>
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
 <input type="submit" value="upload"/>
 </form>
numéro de téléphone: <BR>
<?php 
 
//phpinfo();
 
 
 
 
/***********************************/
 
 
 
$dossier = 'upload/';
$fichier = basename($_FILES['excel']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['excel']['tmp_name']);
$extensions = array('.xls', '.csv');
$extension = strrchr($_FILES['excel']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type xls ou csv';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop important';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['excel']['tmp_name'], $dossier . DIRECTORY_SEPARATOR . $fichier)) 
//Si la fonctionrenvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
 
/**************************************/
voici mon code refait au propre j'ai créer le dossier upload sur le ftp mais je n'y arrive pas voici le souci:

Citation:
Warning: move_uploaded_file(upload//sms-massif.csv) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/web/apreslaclasse.com/ftp/www/email/sms_massif_temporaire.php on line 83

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phptJbVOB' to 'upload//sms-massif.csv' in /home/web/apreslaclasse.com/ftp/www/email/sms_massif_temporaire.php on line 83
yohann007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 19h40   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
PHP dit que le répertoire upload n'existe pas par rapport au répertoire courant (sans doute /home/web/apreslaclasse.com/ftp/www/email/). Est-ce bien le cas (son chemin complet est censé être : /home/web/apreslaclasse.com/ftp/www/email/upload/) ?

(n'oubliez pas d'autoriser l'écriture également)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 11h12   #7
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 81
Points : 12
Points : 12
merci le changement de fichier est bon le seul souci c'est que quand je veux charger mon fichier je n'y arrive pas voici l'erreur je crois que c'est a peu près la même erreur que la précédente j'ai essayer de changer les chemins.
voici l'erreur:

Citation:
Warning: fopen(/home/web/apreslaclasse.com/ftp/www/email/upload/sms massif.csv) [function.fopen]: failed to open stream: No such file or directory in /home/web/apreslaclasse.com/ftp/www/email/sms_massif_temporaire.php on line 88
yohann007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2007, 18h46   #8
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 81
Points : 12
Points : 12
en faite j'ai réglé mon souci mais il me reste 2 soucis:
-le premier est que il me met tout le temps le message :
Citation:
"Vous devez uploader un fichier de type xls ou csv"
alors que ceci est un message d'erreur qui ne devrait apparaitre que lorsque e format du fichier uploader est erronée.
-ensuite j'ai toujours une erreur au niveau du for each et je ne capte pas
Citation:
Warning: Invalid argument supplied for foreach() in /home/web/apreslaclasse.com/ftp/www/email/sms_massif_temporaire2.php on line 91
P.S:j'ai effacé le contenu du $smshead volontairement.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
 
 
 //////////////////
  //     SMS      //
 //////////////////
 
$SmsDest = "sms@leSMS.com"; //
$SmsHead ="";
$SmsMess = "Après la classe:Rendez vous à l'agence de Paris au 76 rue  SaintLazare 75009 pour obtenir votre job étudiant contacteznous au 0142330404 pour toute info";
?>
 
 
<!-- formulaire pour récupérer le fichier excel ou csv -->
 
 
 <form method="post" action='' enctype="multipart/form-data">
<input type="file" name="excel" accept="*.csv"/>
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<input type="submit" value="upload"/>
</form> 
 
<!-- fin formulaire récup fichier -->
 
 
<?php 
 
/***********************************/
/** UPLOAD d'un fichier sur le ftp **/
 
$dossier ='upload/';
$fichier = basename($_FILES['excel']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['excel']['tmp_name']);
$extensions = array('.xls', '.csv');
$extension = strrchr($_FILES['excel']['name'], '.');
//Début des vérifications de sécurité...
 if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type xls ou csv';
} 
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop important';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
 unset($erreur);
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
 
if(move_uploaded_file($_FILES['excel']['tmp_name'], $dossier . DIRECTORY_SEPARATOR . $fichier)) 
//Si la fonctionrenvoie TRUE, c'est que ça a fonctionné...
{
	echo 'Upload effectué avec succès !';
 
	/**************************************/
 
	$fic = fopen($dossier.$fichier, 'r+');
	?>
 
	<!-- formulaire pour affichier dans un select multiple -->
 
	<form method="POST" action="">
	<select name='telephone[]'  size='10' multiple>
	<?php
	for ($ligne = fgetcsv($fic, 1024); !feof($fic); $ligne = fgetcsv($fic, 1024)) 
	{
	$j = sizeof($ligne);
 
	//formatage des numéro de tel
		for ($i = 0; $i < $j; $i++) 
		{
		$ligne= str_replace(' ','',$ligne);
		$ligne= str_replace('\'','',$ligne);
		echo '<option value="'.$ligne[$i].'">'.$ligne[$i].'</option>';
		}
	}
?>
 
 
	<!-- fin du formlaire select multiple -->
	<?php 
	$a = 0; 
	/* -----test pour voir si les numéros de tel sélectionnés sont bien pris en compte.------*/
	foreach( $_POST['telephone'] as $value ) 
	{
	$SmsObjet = "V2RTER:".$value."";
    //envoie du sms
    echo "|".$SmsObjet."|<br>";		
	//a desactiver pendant les tests
	mail("$SmsDest","$SmsObjet","$SmsMess","$SmsHead");  
    usleep(50000);
	$a++;
	} 
 
?>
<input type="submit" value="ok"/>	
</select>
</form>	
<?php
//message de confirmation
 echo "</br><b>".$a." SMS ont étés envoyé(s)</b>";
 
}//fin si upload est un succès
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
} 
?>
et une fois que je clique sur "ok" il me remet en haut le bouton parcourir et upload avec le message "veuillez choisir un fichier csv ou xls"alors qu'il faudrai que le message "1sms est envoyé"
yohann007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h37.


 
 
 
 
Partenaires

Hébergement Web