Erreur d'image

deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 - 7 janv. 2011 à 11:03
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 - 14 janv. 2011 à 15:34
Bonjour a tous et a toutes, je suis en dernière année de BTS et je dois donc réaliser un projet pour une entreprise. Cependant il se trouve que j'ai un problème pour réaliser ma partie.
J'essaie de tester l'envoie d'une image d'un formulaire HTML vers un dossier, qui permettra a mes collègue de récupérer cette même image.
Mon idée dans le formulaire envoyer l'image dans le répertoire et sauvegarder son nom dans une base de donnée. Mes collègues récupèreront le nom de l'image dans la base de donnée et auront plus qu'a la piocher dans le répertoire.(A noter que le répertoire se situe sur un réseau)

Voici mon code :

<?php
$Fichier = $_FILES['image']['name']; //Récupération des informations sur l'image
$filename = 'K:\Monrepertoire\base\Image'; //Choix du repertoire de destination
move_uploaded_file($Fichier,$filename); //Envoie de l'image vers le repertoire

$subject = "c:\Image.gif";
$pattern = '/(gif|jpg|png)$/i';
$matches=preg_match($pattern, $subject); //On vérifie si l'image est dans les formats autorisé
//print($matches);

file_exists($filename) //On vérifie si l'image existe deja et la remplace si deja existante
?>

<?php
echo($Fichier); //Pour tester la bonne réception d el'image on affiche son nom sur la page web
if (filesize($Fichier) >50000) //On verifie que son poids est inferieur a 50KB
{
echo 'image trop grande, limitée à 50 KB';
}

$taille=getimagesize($Fichier); //On verifie que sa taille entre dans les bonnes conditions
if ($taille[0]>300)
{
echo'Image trop large, maximum 300 pixels';
}
if ($taille[1]>400)
{
echo'Image trop haute, supérieure à 400 pixels';
}
?>



Et l'erreur déclenché est :

Warning: filesize() [function.filesize]: stat failed for bob.jpg in D:\Scolaire\Iris2\Deschatre\Base\Insertion.php on line 17

Warning: getimagesize(bob.jpg) [function.getimagesize]: failed to open stream: No such file or directory in D:\Scolaire\Iris2\Deschatre\Base\Insertion.php on line 22

12 réponses

VicTeams Messages postés 63 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 27 février 2011
7 janv. 2011 à 11:21
Salut,
La 1ere erreur est du au faite que tu n'a pas les droits d'accès aux dossier spécifié..

Et la second est un problème d'accès au fichiers, ici bob.jpg)

Peut pas t'aider plus, "l'intranet" via php c'est pas mon truc.....
0
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 3
7 janv. 2011 à 11:33
Salut et merci de ta réponse
Le problème le dossier K est un répertoire ou j'ai tout les droits.
De plus la partie intranet se limite aux tests, une fois ces derniers finis j'envoie tout sur le réseau =s
Personne ne sait pourquoi cette erreur de droit est générer alors que théoriquement je suis administrateur de ce repertoire en réseau? =s
0
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 3
7 janv. 2011 à 11:50
Salut et merci de ta réponse
Le problème le dossier K est un répertoire ou j'ai tout les droits.
De plus la partie intranet se limite aux tests, une fois ces derniers finis j'envoie tout sur le réseau =s
Personne ne sait pourquoi cette erreur de droit est générer alors que théoriquement je suis administrateur de ce repertoire en réseau? =s


Me suis trompé désolé; je voulais parler du répertoire D. Il s'agit de mon répertoire personnel pour ce dernier.
0
VicTeams Messages postés 63 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 27 février 2011
7 janv. 2011 à 15:02
Re, oui toi, mais pas ton serveur...
0

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

Posez votre question
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 3
7 janv. 2011 à 15:10
Tu aurais une idee de comment lui donner les droits?
0
VicTeams Messages postés 63 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 27 février 2011
8 janv. 2011 à 00:11
Si c'est de "L'intranet" il suffirais de créer un utilisateur avec le nom du pc ou est ton serveur.. Si c'est un serveur distant.. Eu, aucune idée, hormis celle d'autorisé l'utilisateur "Tous le mondes" <= Windows, mais c'est peut être risqué....
0
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 3
12 janv. 2011 à 11:15
Bonjour a tous, alors je post de nouveau car j'ai résolus tant bien que mal le problème précédent en corrigeant mon erreur sur le "move-upload-file".

Voici le nouveau code :

<?php
$Fichier = $_FILES['image']['name']; //Récupération des informations sur l'image
$filename = "http://127.0.0.1/cartec/Image/$Fichier"; //Choix du repertoire de destination
move_uploaded_file("$Fichier","$filename")
or die ('Impossible de transferer'); //Envoie de l'image vers le repertoire

$subject = "c:\Image.gif";
$pattern = '/(gif|jpg|png)$/i';
$matches=preg_match($pattern, $subject); //On vérifie si l'image est dans les formats autorisé
//print($matches);

file_exists("$Fichier"); //On vérifie si l'image existe deja et la remplace si deja existante

echo($Fichier); //Pour tester la bonne réception de l'image on affiche son nom sur la page web
if (filesize("$Fichier") >50000) //On verifie que son poids est inferieur a 50KB
{
echo 'image trop grande, limitée à 50 KB';
}

$taille=getimagesize("$Fichier"); //On verifie que sa taille entre dans les bonnes conditions
if ($taille[0]>300)
{
echo'Image trop large, maximum 300 pixels';
}
if ($taille[1]>400)
{
echo'Image trop haute, supérieure à 400 pixels';
}
?>


Et le nouveau probleme est le suivant :

Impossible de transferer


Le transfert renvoie toujours false si vous avez des réponses a ce sujet merci d'avance.
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
12 janv. 2011 à 11:40
Salut,

je suis en dernière année de BTS

Et tu n'as pas eu de cours de PHP durant ton BTS ? Venant d'un grand débutant ok, mais si jamais tu es censé être compétent dans le domaine et veux y travailler... ça fait peur.

Déjà regarde la documentation de move_uploaded_file() (en particulier l'exemple) ainsi que la documentation sur l'upload de fichiers afin de découvrir ce qu'il faut mettre comme paramètres. Pour le chemin vers le fichier à bouger tu n'utilises pas le bon nom. Pour le chemin de destination, non ce n'est pas le chemin vers un dossier, non ce n'est pas une URL, mais c'est le chemin complet vers le fichier à créer.

<?php
$subject = "c:\Image.gif";
$pattern = '/(gif|jpg|png)$/i';
$matches=preg_match($pattern, $subject);
?>

Code complètement inutile, il ne fais rien à part manger des performances.

<?php
file_exists("$Fichier"); //On vérifie si l'image existe deja et la remplace si deja existante
?>

Non tu ne vérifie rien du tout. Vu que tu ne prend pas en compte la valeur de retour ce bout de code est inutile car sans effet.

<?php
if (filesize("$Fichier") >50000) //On verifie que son poids est inferieur a 50KB
  {
    echo 'image trop grande, limitée à 50 KB';
  }

$taille=getimagesize("$Fichier"); //On verifie que sa taille entre dans les bonnes conditions
if ($taille[0]>300)
  {
    echo'Image trop large, maximum 300 pixels';
  }
if ($taille[1]>400)
  {
    echo'Image trop haute, supérieure à 400 pixels';
  }
?>

Même remarque, ne prenant pas en compte ces test dans le script ils n'ont aucun effet. En fait tout ce qui est après le move_uploaded_file() ne sert à rien.
0
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 3
12 janv. 2011 à 11:49
Non aucune formation reel en Php on a eus deux pages avec juste les bases pour se connecter a mysql
Je suis en autodidacte donc, je comptais de toute facon supprimer la fin du code.
Pour l'url c'était une proposition de mon professeur qui lui est expert php.
Je te remercie pour les liens et pour ta franchise qui confirme certaines hypothèses.
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
12 janv. 2011 à 12:25
Non aucune formation reel en Php on a eus deux pages avec juste les bases pour se connecter a mysql

Ok je comprend mieux. En effet dans ce cas on ne vas pas s'attendre au même résultat que de la part de quelqu'un qui as étudié ça dans sa formation.

Pour l'url c'était une proposition de mon professeur qui lui est expert php.

C'est complètement saugrenu de sa part. Autant dans la destination oublier le nom du fichier à créer (et donc ne laisser que le chemin vers le dossier de destination) peut se comprendre, mais mettre une url http... Bien qu'il soit théoriquement possible de créer un fichier via HTTP avec la méthode PUT, il devrais savoir que pour des raisons de sécurité ça ne se fait pas et que, de toute manière, PHP le supporte pas (la doc sur les flux http et https précise bien que c'est utilisable uniquement pour la lecture).

Bref, vu ce que dit ton prof tu devrais sans doute rester autodidacte et potasser le manuel php.
0
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 3
12 janv. 2011 à 16:39
Bref, vu ce que dit ton prof tu devrais sans doute rester autodidacte et potasser le manuel php.


C'est en partie pour ca que je ne l'appel pas.

J'ai été sur les pages du manuel php.

J'ai en grande partie repris l'exemple sur le "move_upload_file" du manuel.
En adaptant donc le nom du chemin de fichier a créer.

J'ai réussis donc a compiler sans warning ni erreur.
Je réalise au passage deux tests un indiquant que le transfert est impossible et un deuxième disant que le déplacement a bel et bien effectué.

Logiquement donc ca devrait m'afficher un des deux etats, hors aucun ne s'affiche.

Désolé ce n'est peut être pas très clair mais au bout de 8h non stop a réfléchir a ce sujet je commence a fatiguer un peu ^^'.
0
deutch36 Messages postés 73 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 11 décembre 2012 3
14 janv. 2011 à 15:34
Probleme résolus merci beaucoup a toi et a tout ceux qui m'ont aidé.
0
Rejoignez-nous