Probleme sur un script php (upload)

asus -  
R4f Messages postés 441 Statut Membre -
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 7114 Statut Contributeur 923
 
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 Statut Membre 62
 
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
asus
 
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 7114 Statut Contributeur 923
 
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
asus
 
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 7114 Statut Contributeur 923
 
dans le 'action' il faut un nom de script complet.
<form method="POST" action="up" enctype="multipart/form-data">

0
asus
 
desole mais je ne voit pas
0
Dalida Messages postés 7114 Statut Contributeur 923
 
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
asus
 
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 7114 Statut Contributeur 923
 
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 215 Statut Membre 13
 
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 7114 Statut Contributeur 923
 
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 215 Statut Membre 13
 
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 7114 Statut Contributeur 923
 
oui

et je tombe sur une page blanche…
0
asus02 Messages postés 215 Statut Membre 13
 
ta pas une idée ?
0
asus02 Messages postés 215 Statut Membre 13
 
aie pas d'aide ...
0
R4f Messages postés 441 Statut Membre 62
 
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 215 Statut Membre 13
 
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 Statut Membre 62
 
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 215 Statut Membre 13
 
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