JeuWeb - Crée ton jeu par navigateur
Systeme d'upload tout simple? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Systeme d'upload tout simple? (/showthread.php?tid=1246)



Systeme d'upload tout simple? - Argorate - 11-10-2010

Bonjour,

je voudrais savoir où trouver un petit script permetant d'avoir un bouton "parcourir..." qui permete d'uploader des images (à la manière des avatars sur les forums par exemple).

Vous savez où trouvez ça?


RE: Systeme d'upload tout simple? - Sephi-Chan - 11-10-2010

Jette un œil à ce très court article, je pense qu'il y a tout ce dont tu as besoin : http://phpform.net/upload.php.


RE: Systeme d'upload tout simple? - Globe - 11-10-2010

J'ai une fonction qui traine depuis perpet dans un coin du pc

    function upload($index,$destination,$maxsize=FALSE,$extensions=FALSE)

{

//Test1: fichier correctement uploadé

if (!isset($_FILES[$index]) OR $_FILES[$index]['error'] > 0) return FALSE;

//Test2: taille limite

if ($maxsize !== FALSE AND $_FILES[$index]['size'] > $maxsize) return FALSE;

//Test3: extension

$ext = substr(strrchr($_FILES[$index]['name'],'.'),1);

if ($extensions !== FALSE AND !in_array($ext,$extensions)) return FALSE;

//Déplacement

return move_uploaded_file($_FILES[$index]['tmp_name'],$destination);

}



RE: Systeme d'upload tout simple? - Argorate - 13-10-2010

Bon j'ai un petit soucis, j'arrive pas a faire marcher ce satané upload, j'ai pourtant essayé plusieurs choses, j'ai meme modifier les droit sur le dossiers mais on dirait qu'il y a un problème avec le chemin...


function upload($index='image', $destination='/images/escouade/', $maxsize=10737418240, $extensions=array('jpg', 'jpeg', 'png', 'gif'))
{
if(is_uploaded_file($_FILES[$index]['tmp_name']))
{
//Test1: fichier correctement uploadé
if(!isset($_FILES[$index]) OR $_FILES[$index]['error'] > 0) echo 'Erreur d upload du fichier';

//Test2: taille limite
if($_FILES[$index]['size'] > $maxsize) echo '<br />Erreur, la taille du fichier est trop élevé : '.$_FILES[$index]['size'].' / '.$maxsize;

//Test3: extension
if(!in_array(substr(strrchr($_FILES[$index]['name'], '.'), 1), $extensions)) echo '<br />Erreur! L extension du fichier n est pas autorisé.';

$destination .= basename($_FILES[$index]['name']);

//Déplacement
if(!move_uploaded_file($_FILES[$index]['tmp_name'], $destination)) echo '<br />Erreur de déplacement du fichier: '.$destination;
else return true;
}
else return false;
}

voilà ce que j'ai :
Citation :Warning: move_uploaded_file(/images/escouade/Collines.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/raptures/public_html/devotion/include/fonction/fonction_generale.php on line 350

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpL5ggs8' to '/images/escouade/Collines.jpg' in /home/raptures/public_html/devotion/include/fonction/fonction_generale.php on line 350

et le var_dump($_FILES):

Citation :array(1) { ["image"]=> array(5) { ["name"]=> string(12) "Collines.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(14) "/tmp/phpL5ggs8" ["error"]=> int(0) ["size"]=> int(28521) } }



RE: Systeme d'upload tout simple? - Anthor - 13-10-2010

/images/escouade/ N'existe pas, ce qui peux paraitre logique car tu utilises un chemin absolue.

Au vu de l'erreur je dirais que ce chemin est le bon

$destination = dirname(__FILE__) . '/../../images/escouade/';



RE: Systeme d'upload tout simple? - Argorate - 14-10-2010

Effectivement, ça marche mieux comme ça Smile

Sinon comment peut on optenir la taille (width*height) de l'image en question? Ce n'est pas donnée dans $_FILES Sad

Et est-il possible de verouiller les extensions permises dans la fenaitre qui souvre lorsqu'on clique sur l'input?
Car on controle l'extension coté serveur, mais dans la fenetre où on choisit le fichier, toutes les extensions sont autorisées, n'y a t-il pas un moyen de transmetre la liste des extensions a prendre en compte uniquement?


RE: Systeme d'upload tout simple? - Anthor - 14-10-2010

http://php.net/manual/fr/function.getimagesize.php

http://www.w3schools.com/tags/att_input_accept.asp


RE: Systeme d'upload tout simple? - Argorate - 14-10-2010

J'ai deja essayé le getimagesize() avant de demander Smile
Mais cela ne fonctionne pas. où alors faut d'abord uploader l'image pour ensuite mesurer sa taile pour éventuelement la supprimer. je préférerais faire la vérif avant l'upload: inutile de faire des traitements inutile.
EDIT : c'est bon su ce point, c'est moi qui suis bete, je regarder le fichier upload et pas le temporaire -_-'


la proprieté "accept" ne semble pas fonctionner...

Sinon autre chose, d'après le manuel : http://php.net/manual/fr/function.move-uploaded-file.php la fonction écrase si un fichier portant le meme nom existe deja, hors, chez moi cela renomme le fichier et n'ecrase rien du tout... ??


RE: Systeme d'upload tout simple? - Globe - 14-10-2010

Faut uploader l'image avant.
Dans ta fonction :

$fileinfo = getimagesize($chemin_image);
if( !$fileinfo ) return FALSE;

$width = $fileinfo[0];
$height = $fileinfo[1];



RE: Systeme d'upload tout simple? - Argorate - 14-10-2010

oui oui j'ai fais un petit : list($width, $height) = getimagesize($_FILES[$index]['tmp_name']); Wink

c'est juste qu'a la base javais mis $_FILES[$index]['name'] c'est pour ça que ça n'avait pas fonctionné Smile