Probleme sur un script php (upload)

Fermé
asus - 13 janv. 2008 à 14:37
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 - 15 janv. 2008 à 12:48
Bonjour,
une erreur ligne 106

// Ensuite, on copie le fichier uploadé ou bon nous semble.
				$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier);


merci
A voir également:

23 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
13 janv. 2008 à 15:37
salut,

bon début !
est-ce qu'on pourrait avoir le message d'erreur stp ?
-;o)

si 'DESTINATION_FOLDER' est une constante il ne faut pas de '$' devant.
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
13 janv. 2008 à 15:44
Salut,

Vérifie bien aussi que $DESTINATION_FOLDER.$nomFichier donne bien un nom genre uploads/lefichier.extension, bref qu'il y a un slash dans $DESTINATION_FOLDER (en fin) ou dans $nomFichier (au début).

Raph
0
Warning: move_uploaded_file(folder01/56.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/acr02/www/upload/uploader.php on line 106

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpdh171b' to 'folder01/56.jpg' in /home/acr02/www/upload/uploader.php on line 106
L'upload a échoué !
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
13 janv. 2008 à 16:19
salut,

est-ce que répertoire de destination '$DESTINATION_FOLDER' existe bien ?
0

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

Posez votre question
j'ai supprimer ce script car pas de retour d'url apres upload

en voici un autre mais apres upload (qui ne marche pas) il me renvoi sur l'index of

<?php

 

if(isset($_FILES['photo']))

{

// params

unset($erreur);

$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');

$taille_max = 100000;

$dest_dossier = 'up/';

// utilisez également des slashes sous windows : $dest_dossier = 'up/';

// vérifications

if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )

{

$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';

}

elseif( file_exists($_FILES['photo']['tmp_name'])

and filesize($_FILES['photo']['tmp_name']) > $taille_max)

{

$erreur = 'Votre fichier doit faire moins de 500Ko !';

}

// copie du fichier

if(!isset($erreur))

{

$dest_fichier = basename($_FILES['up']['free']);

// formatage nom fichier

// enlever les accents

$dest_fichier = strtr($dest_fichier,

'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',

'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');

// remplacer les caracteres autres que lettres, chiffres et point par _

$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);

// copie du fichier

move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);

}

}

 

?>

<!-- Formulaire -->

      <!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
  
      <form method="POST" action="up" enctype="multipart/form-data">

      <!-- Limiter la taille des fichiers à 500Ko -->

      <input type="hidden" name="MAX_FILE_SIZE" value="500000" />
  
      <fieldset>

      <legend><font color=#000000>Envoi de fichiers</font></legend>
  
      <!-- champs d'envoi de fichier, de type file -->
  
      <p><label for="photo"><font color=#000000>Fichier</font></label><input type="file" name="photo" /></p>
 
      
 
      <!-- bouton d'envoi -->
  
      <p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
  
      </legend>
  
      </fieldset>
  
      </form> 
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
13 janv. 2008 à 16:46
dans le 'action' il faut un nom de script complet.
<form method="POST" action="up" enctype="multipart/form-data">

0
desole mais je ne voit pas
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
13 janv. 2008 à 16:55
il faut que tu mettes le nom du fichier qui devra être exécuté au moment où l'utilisateur clique sur "Valider".

tu fais tout dans le même fichier (affichage du formulaire et traitement de l'envoi du formulaire) donc il faut que tu indiques le nom du fichier.

si c'est 'up.php' ça fera :
<form method="POST" action="up.php" enctype="multipart/form-data">

0
ce que je pige pas c'est up.php pourquoi si c'est un fichier pour stocker non !
et si je met le formulaire a part donc form.html et up.php pour le script php, comment indiquer l'endroit ou les fichiers vont etre uploader et
sur ce script est il indiquer que a la fin de l'upload l'url du lien sera afficher..
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
13 janv. 2008 à 17:46
dans la balise <form> tu indiques juste quel page sera appelée par le serveur.
l'endroit où tu stockes les images il faut le définir dans ton script PHP avec une variable, par exemple :
$dossierimages = 'mondossier';

il n'y a pas de rapport entre les deux.

si tu sépares formulaire HTML et script PHP, il faut indiquer l'adresse du fichier PHP.
0
asus02 Messages postés 197 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 18 septembre 2013 13
13 janv. 2008 à 18:01
j'ai modifier le formulaire comme ca :

<!-- Formulaire -->

      <!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
  
      <form method="POST" action="upload.php" enctype="multipart/form-data">

      <!-- Limiter la taille des fichiers à 500Ko -->

      <input type="hidden" name="MAX_FILE_SIZE" value="500000" />
  
      <fieldset>

      <legend><font color=#000000>Envoi de fichiers</font></legend>
  
      <!-- champs d'envoi de fichier, de type file -->
  
      <p><label for="photo"><font color=#000000>Fichier</font></label><input type="file" name="photo" /></p>
 
      
 
      <!-- bouton d'envoi -->
  
      <p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
  
      </legend>
  
      </fieldset>
  
      </form> 


la page php (upload.php) :

<?php 

if(isset($_FILES['photo']))

{

// params

unset($erreur);

$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');

$taille_max = 100000;

$dest_dossier = '/up/';

// utilisez également des slashes sous windows : $dest_dossier = '/up/';

// vérifications

if( !in_array( substr(strrchr($_FILES['free']['name'], '.'), 1), $extensions_ok ) )

{

$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';

}

elseif( file_exists($_FILES['up']['free'])

and filesize($_FILES['up']['free']) > $taille_max)

{

$erreur = 'Votre fichier doit faire moins de 500Ko !';

}

// copie du fichier

if(!isset($erreur))

{

$dest_fichier = basename($_FILES['up']['free']);

// formatage nom fichier

// enlever les accents

$dest_fichier = strtr($dest_fichier,

'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',

'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');

// remplacer les caracteres autres que lettres, chiffres et point par _

$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);

// copie du fichier

move_uploaded_file($_FILES['up']['free'], $dest_dossier . $dest_fichier);

}

}
 

?>


mon fichier de stockage se nomme "up"

mais quand je veut uploader j'arrive sur la page php mais blanche ==>http://acr02.fr/test/
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
13 janv. 2008 à 18:14
ton script ne demande aucun affichage donc il est normal qu'il n'y ait rien d'affiché, mais est-ce que le fichier est uploadé ?

après ce sera à toi d'afficher ce que tu veux comme résultat.
if( move_uploaded_file($_FILES['up']['free'], $dest_dossier . $dest_fichier) )
{
     echo( 'YES !!!' );
}
else
{
     echo( 'NO !' );
}

0
asus02 Messages postés 197 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 18 septembre 2013 13
13 janv. 2008 à 18:19
non meme pas justement il doit y avoir une erreur sur le script mais je voit pas ou !
a tu tester sur le lien que j'ai poster plus haut ?
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
13 janv. 2008 à 18:47
oui

et je tombe sur une page blanche…
0
asus02 Messages postés 197 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 18 septembre 2013 13
13 janv. 2008 à 19:02
ta pas une idée ?
0
asus02 Messages postés 197 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 18 septembre 2013 13
13 janv. 2008 à 20:45
aie pas d'aide ...
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
13 janv. 2008 à 22:59
A la fin de ton fichier, ajoute (après ?>) :
Coucou


Si tu ne vois pas "Coucou" dans ta page, c'est que le script a planté avant la fin de la page...

Raph
0
asus02 Messages postés 197 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 18 septembre 2013 13
13 janv. 2008 à 23:56
et bien j'ai bien coucou apres l'upload mais rien dans mon dossier "up" et pas de retour lien
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
14 janv. 2008 à 00:01
Ce qui ne va pas, c'est que dans ton script, tu utilises $_FILES['up'] alors que ton champ dans tonformulaire s'appelle 'photo'.

Il faudrait que tu remplaces tous les $_FILES['up'] par $_FILES['photo'].

Ca devrait suffire.

Raph
0
asus02 Messages postés 197 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 18 septembre 2013 13
14 janv. 2008 à 01:54
je l'ai fait regarde :

<?php

if(isset($_FILES['up']))

{

// params

unset($erreur);

$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');

$taille_max = 100000;

$dest_dossier = '/up/';

// utilisez également des slashes sous windows : $dest_dossier = '/up/';

// vérifications

if( !in_array( substr(strrchr($_FILES['up']['name'], '.'), 1), $extensions_ok ) )

{

$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';

}

elseif( file_exists($_FILES['up']['free'])

and filesize($_FILES['up']['free']) > $taille_max)

{

$erreur = 'Votre fichier doit faire moins de 500Ko !';

}

// copie du fichier

if(!isset($erreur))

{

$dest_fichier = basename($_FILES['up']['free']);

// formatage nom fichier

// enlever les accents

$dest_fichier = strtr($dest_fichier,

'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',

'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');

// remplacer les caracteres autres que lettres, chiffres et point par _

$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);

// copie du fichier

move_uploaded_file($_FILES['up']['free'], $dest_dossier . $dest_fichier);

}

}


mais c'est pareil je voit bien le "coucou" mais c'est tout et rien ne s'upload...
0