|
| herve.lagarde | Posté le 04/09/2006 @ 09:19 |
Petit astucien
450 Messages
| Bonjour a tous les astucien(ne)s,
Je fais une page pour uoloader un fichier. Il semble que mon code (comme on m'a indiqué) marche pas. Ou alors j'ai raté un truc
[code]<form method ="post" action="upload.php" enctype="multipart/form-data">
Choisir une photo : <input type="file" name="img"><br>
<input type="submit" name="envoyer" value="Envoyer">
</form>
<?php
echo $_POST['envoyer'].' est fait<br>';
echo 'taille : '.$_FILES['img']['size'].'<br>';
//ca, on sait que ca marche, koike
if(isset($_FILES['img']['name']))
echo '$_post[\\\'envoyer\\\'] marche<br>';
{
if(is_uploaded_file($fluxtemp['img']['name']))
{
echo 'fichier uploadé<br>';
//théoriquement, le fichier devrait avoir été uploadé ici
//tu peux, si tu le souhaites, créer une politique de vérification basée sur
$taille = $_FILES['img']['size'];
$type = $_FILES['img']['type'] ;
$erreur = $_FILES['img']['error'];
echo 'taille : '.$taille.', type : '.$type.', erreur : '.$erreur.'<br>';
//pour écarter certains fichiers selon tes propres choix
//Il faudra de toutes manières terminer par une commande du genre de
if($ok)
{
$nom = "/Temp/".$_FILE['img']['name']; // chemin du fichier
$resultat = move_uploaded_file($_FILE['img']['tmp_name'],$nom);
//move_uploaded_file('dossier/nom.ext','dossier/destination/nom.ext');
}
}
}
[/code]
tout marche jusqu'a echo '$_post[\\\'envoyer\\\'] marche<br>';
"echo 'fichier uploadé<br>';" lui ne s'execute pas
|
| |
| |
| Publicité |
|
|
| herve.lagarde | Posté le 04/09/2006 à 13:12 |
Petit astucien
450 Messages
| Personne peut m'aider ? |
| |
|
| olivier7500 | Posté le 05/09/2006 à 04:11 |
Petit astucien
504 Messages
| Salut, utilise ce code pour l'upload en php:
<form action="upload.php" enctype="multipart/form-data" method="post" name="LeForm" id="LeForm">
<p><strong> Ajouter des photos</strong></p>
<!-- Ce champ masqué permet de spécifier la taille maximale des fichiers que l'on autorise à envoyer -->
<input type="hidden" name="MAX_FILE_SIZE" value="9000000">
<div id="LesChamps">
<input NAME="Champ1" TYPE="file" id="Champ1" size="60">
</div>
<p>
<input type="submit" name="Submit" value="Envoyer">
</p>
</form>
<?
$RepDistant="photos/"; // Dossier ou seront envoyées les images... peut être modifié.
if(isset($_FILES["Champ1"])){ // Ajout d'une photo
// On compte le nombre de photos déjà contenues dans le dossier
$i=1;
while(file_exists($RepDistant.$i.".jpg"))
$i++;
// La variable $i sors de cette boucle dès que sa valeur ne correspond pas au nom d"une photo existente.
// Nous pourrons donc attribuer ce numéro à la prochaine photo envoyée.
// On copie ensuite chacune des photos que l'on a envoyé sur le Répertoire temporaire du serveur
// dans norte fichier de photos
// On les renomme par la même occasion à l'aide de notre variable pour éviter les doublons
$j=1;
while((isset($_FILES["Champ".$j]))&&($_FILES["Champ".$j]!="")){
move_uploaded_file($_FILES["Champ".$j]['tmp_name'],$RepDistant.$i.".jpg");
$i++;
$j++;
}
}
?>
Esperant t'aider...
A bientôt
Olivier |
| |
|
| herve.lagarde | Posté le 05/09/2006 à 08:44 |
Petit astucien
450 Messages
| J'ai mis comme tu m'as dit :
[code]$rep_distant = "Upload/" // dossier de stockage
if(isset($_FILES['img']))
{
//on comptes le nombre de photos deja contenues dans le dossier
$i = 1;
while(file_exists($ rep_distant.$i.".jpg"))
$i++;
// on copie la photo envoyée sur le repertoire temp du serveur vers dossier
// on renomme le fichier
$j = 1;
while (isset($_FILES["img".$j])&&$FILES["img".$j]!=""))
{
move_uploaded_file($_FILES["img".$j]['tmp_name'],$rep_distant.$i.".jpg");
$i++;
$j++;
}
}
et j'ai un erreur : Parse error: syntax error, unexpected T_IF in
Puis en relisant ce que u me donnes, tu as mis 2 fois $i++ dans la boucle. Correct ? |
| |
|
| herve.lagarde | Posté le 05/09/2006 à 08:51 |
Petit astucien
450 Messages
| la ligne indiquée pour l'erreur c'est "if(isset($_FILES['img']))
" |
| |
|
| herve.lagarde | Posté le 09/09/2006 à 14:06 |
Petit astucien
450 Messages
| je reprends mon sujet, quelqu'un peut m'aider ?
|
| |
|
| ti_ouf | Posté le 10/09/2006 à 09:02 |
Astucien
4767 Messages
| déjà je pense que pour cette ligne se serait plutot comme çà :
[code]if(isset($_FILES['img']['name']))
echo '$_post[\\\'envoyer\\\'] marche<br>';
{[/code]
deviendrait :
[code]if(isset($_FILES['img']['name']))
{
echo '$_post[\\\'envoyer\\\'] marche<br>';[/code]
c'est à dire dans ta { de ta condition.
Ensuite, il faudrait mettre un champs dans ton formulaire contenant la taille maximale que tu acceptes pour l'upload!
ainsi <input type="hidden" name="MAX_FILE_SIZE" value="12345" />
a placer avant ton champs d'upload.
Ensuite pour chaque upload, le fichier envoyé sur le serveur est stocké dans une variable Superglobale $_FILES.
il suffit donc premierement de vérifier si il y a eu une erreur lors de l'upload, c'est à dire si il y a bien eu un upload
if ($_FILES['upload']['error'] > 0) : $commentaire = "aucun uplod effectué";
ensuite tu conditionnes, si l'upload est efectué, la taille de ton upload, si c'est bien conforme avec ce que tu as définis auparavant .
etc ...
ton code est un tout petit peu baclé , excuse moi du fait [clindoeil]
mais si tu veux bien le reprendre, je te guiderais |
| |
|
| herve.lagarde | Posté le 10/09/2006 à 09:22 |
Petit astucien
450 Messages
| Apparemment j'avais travaillé et j'en suis plaus la
Voici mon code :
[code]$rep_distant = "Upload/" // dossier de stockage
if(isset($_FILES['img1']['name']))
{
//on comptes le nombre de photos deja contenues dans le dossier
$i = 1;
while(file_exists($ rep_distant.$i.".jpg"))
$i++;
// on copie la photo envoyée sur le repertoire temp du serveur vers dossier
// on renomme le fichier
$j = 1;
while (isset($_FILES["img".$j])&&$FILES["img".$j]!=""))
{
move_uploaded_file($_FILES["img".$j]['tmp_name'],$rep_distant.$i.".jpg");
$i++;
$j++;
}
}
[/code]
Tu la page ici pour test [url]http://h.lagarde.free.fr/Upload/upload.php[/url]
J'ai "Parse error: syntax error, unexpected T_IF in /mnt/135/sdb/a/1/h.lagarde/Upload/upload.php on line 27"
|
| |
|
| ti_ouf | Posté le 10/09/2006 à 09:50 |
Astucien
4767 Messages
| et a quoi correspond la ligne 27, s'il te plait ? |
| |
|
| herve.lagarde | Posté le 10/09/2006 à 10:04 |
Petit astucien
450 Messages
| scuse : if(isset($_FILES['img1']['name'])) |
| |
|
| ti_ouf | Posté le 10/09/2006 à 19:25 |
Astucien
4767 Messages
| le mieux est d'avoir le code complet, ton formulaire + ton code php de traitement d'upload. |
| |
|
| herve.lagarde | Posté le 10/09/2006 à 23:44 |
Petit astucien
450 Messages
| j'ai changé la facon d'aborder le traitement du fichier telechargé, a tort ?
[code]<!-- formulaire d'envoi-->
<p> </p>
<form method ="post" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="1048576" /><!--1Mo-->
Choisir une photo : <input type="file" name="img1"><br>
<!--<input type="hidden" name="max_size" value="1000000">-->
<input type="submit" name="envoyer" value="Envoyer">
</form>
<?php
include "../connect.php";
//*******************************
//****** reception fichier ******
//*******************************
if ($_FILES['icone']['error'] > 0) $erreur = "Erreur lors du tranfsert";
if ($_FILES['icone']['size'] > $maxsize) $erreur = "Le fichier est trop gros";
if ($erreur != '')
{
echo $erreur;
}
echo $_FILES['img1']['tmp_name'];
//$nom = 'toto';
$nom = 'Upload/.'$nom;
echo '$nom : '.$nom;
;
$resultat = move_uploaded_file($_FILES['img1']['temp_name'],$nom);
if($resultat) echo "Transfert réussi";
echo '<br>'.$nom;
echo '<br>'.$_FILES['img1']['type'];
$rep_distant = "Upload/"; // dossier de stockage
[/code] |
| |
|
| olivier7500 | Posté le 11/09/2006 à 00:48 |
Petit astucien
504 Messages
| Bonsoir Hervé,
peux-tu m'envoyer l'intégralité de ta page upload.php, je la teste, corrige et te la renvois: olivier75012@wanadoo.fr
Envois le fichier en pièce jointe et non un copié/collé.(précise ton pseudo stp)
A+++
Oliv |
| |
|
| ti_ouf | Posté le 11/09/2006 à 21:38 |
Astucien
4767 Messages
| plus de problème ? |
| |
|
| herve.lagarde | Posté le 11/09/2006 à 21:55 |
Petit astucien
450 Messages
| Non Olivier (messages precedents) m'a refait le fichier et en fait, il semblerait que le probleme venait qu'il me fallait refaire un dossier UPLOAD DANS LE DOSSIER Upload.
Mais merci a toi de t'inquiéter. Tu peux tester a cette adresse [url]http://h.lagarde.free.fr/Upload/upload.php[/url] |
| |
|
|
| Haut de la page |