Chemin d'un fichier Upload

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Chemin d'un fichier Upload

Re: Chemin d'un fichier Upload

par AB » 23 nov. 2010, 21:14

Tiens en passant j'ai mis en ligne la version 1.9
C'est mieux de mettre à jour ton ancienne version de la classe et de la remplacer par celle-ci, tu auras de meilleures performances.

Re: Chemin d'un fichier Upload

par necromoine » 23 nov. 2010, 21:06

Merci beaucoup, tu me sauve encore une fois.
Merci beaucoup.

Re: Chemin d'un fichier Upload

par AB » 21 nov. 2010, 18:31

Si tes répertoires sont dans un répertoire Images, dans le code ci-dessus, remplace

$dossier_upload = $serveur_name.'/'.basename($key);
par
$dossier_upload = $serveur_name.'/Images/'.basename($key);

Re: Chemin d'un fichier Upload

par necromoine » 21 nov. 2010, 09:15

Merci, probleme de l'upload en double est reglé, par contre, subsiste un petit probleme pour le lien de l'image.
I

Re: Chemin d'un fichier Upload

par AB » 20 nov. 2010, 21:08

Oui bon y'avait des lignes vides en trop à la fin de la classe que je viens de modifier ... dû à un mauvais formatage de mon message, je viens de corriger, sinon faut les effacer pour que la balise de fermeture '?>' soit bien le dernier caractère de la page de la classe d'upload sinon ça envoie des messages d'erreur.

Alors ça donne quoi ?

Sinon dans ton code qui renvoi le lien essaye de mettre
<?php //affichage du message

if (!empty ($transfert))
     {
	 	$serveur_name = 'http://'.$_SERVER['SERVER_NAME'];
		
		echo '<p>';
		$result = $transfert['resultat'];
	   
		foreach ($result as $num => $rep)
			{
				foreach ($rep as $key => $value)
					{                                                  
						if(!empty($value['nom']))                                  
										
							{
								$dossier_upload = $serveur_name.'/'.basename($key);
										
								$dim = explode('x',$value['dim']);
										
								echo htmlspecialchars('code à insérer : <img src ="'.$dossier_upload.'/'.$value['nom'].'" width="'.$dim[0].'" height="'.$dim[1].'" />') ;
							}
					}    
			}
		echo '</p>';	
	} 
?>
à la place de l'ancien code qui affichait le message de lien.

Cela donne ce que tu voulais ?

Re: Chemin d'un fichier Upload

par AB » 20 nov. 2010, 19:18

Salut !

Merci pour les messages d'erreur, ça m'a permis de corriger une petite erreur sur certains systèmes (dont peut-être le tiens) avec la fonction glob dans la classe d'upload .

J'ai donc mis une nouvelle version 1.6 en ligne pour la classe d'upload. Copies la et remplaces l'ancienne version par celle-ci.

Cela dit il est possible également que la fonction glob de la classe d'upload (qui sert au renommage incrémentiel) soit désactivée sur ton serveur. Donc si le renommage incrémentiel ne fonctionne pas comme prévu on peut toujours utiliser le renommage avec un identifiant unique (plutôt qu'incrémentiel), ce qui est par ailleurs recommandé pour des raisons de performances.
Pour ce faire dans le message de paramétrage de l'upload qui est ici remplaces la ligne :

$up->Set_Renomme_fichier('incr');
par
$up->Set_Renomme_fichier();

Pour ce qui est de l'adresse de l'image qui est renvoyée, je n'ai pas le temps aujourd'hui et je regarderai ça demain.

A bientôt :)

Re: Chemin d'un fichier Upload

par necromoine » 20 nov. 2010, 15:23

Escuse-moi pour ce retard, mais j'etais en "bac blanc" toute la semaines.
Je n'ai donc pas eu le temps de me connecter.
Les messages d'erreurs sont :
Warning: natsort() [function.natsort]: The argument should be an array in /www/zxq.net/t/u/t/tuto/htdocs/admin/Upload/class_upload.php on line 837

Warning: array_pop() [function.array-pop]: The argument should be an array in /www/zxq.net/t/u/t/tutod/htdocs/admin/Upload/class_upload.php on line 839

Warning: Cannot modify header information - headers already sent by (output started at /www/zxq.net/t/u/t/tuto/htdocs/admin/Upload/class_upload.php:837) in /www/zxq.net/t/u/t/tuto/htdocs/admin/Upload/class_upload.php on line 365

Ces messages, n'arrivent qu'au moment du renommage des fichiers, si j'upload deux fois le même dossier.
Au niveau du message qu'il m'affiche quand au lien de l'image c'est :

Re: Chemin d'un fichier Upload

par AB » 16 nov. 2010, 06:35

Tu as utilisé le code que je t'ai donné ?
Si oui recopies moi exactement par copié/collé un exemple de ce qu'il te renvoie comme lien.

A part ça tu n'as pas répondu sur la nature des messages d'avertissements que tu avais (comme je te le demandais dans mes messages précédents).
Cela ne te prendrais pas beaucoup de temps de faire un copier/coller et je serais curieux de les connaître. Il faut un minimum de retours précis et d'échanges si tu veux que l'on puisse t'aider.

Re: Chemin d'un fichier Upload

par necromoine » 13 nov. 2010, 21:22

Edit, je "réouvre" le topic car :
j'ai un probleme dans le lien auquel je n'avais pas penser (eh oui)
Quand il affiche le lien a coller, il faudrait afficher le lien http://monsite/Images/Musiques/photo.jpg
Et non le chemin /www/ect/Images/...
Je n'ai aucune idée de comment faire cela.
Si je me suis mal exprimer, dites le moi.

Re: Chemin d'un fichier Upload

par AB » 10 nov. 2010, 00:22

J'aimerais bien savoir quels sont ces messages d'erreur. Tu peux me les recopier ?

Devant quelles fonctions as-tu mis des @. Parce que les fonctions ne seront simplement pas exécutées et si elles étaient nécessaires...

Oui c'est recommandé d'utiliser mysqli (ou pdo) de préférence à mysql.

Re: Chemin d'un fichier Upload

par necromoine » 10 nov. 2010, 00:02

Pour les erreurs, étant donnée que cela n'etait que des Warning, je me suis permis de mettre des @ devant.
Donc tout semble marcher.

Merci a vous.

----> Depuis que j'ai commencer le PHP j'utilise Mysqli, est-ce bien ? (j'ouvre un nouveau topic d'aide pour un systeme de news c'est pour ca.)

Re: Chemin d'un fichier Upload

par AB » 09 nov. 2010, 23:19

A oui contrôle aussi que le fichier class_upload.php se termine bien par ?>

Re: Chemin d'un fichier Upload

par AB » 09 nov. 2010, 23:14

Pour ton premier message, dans un espace admin il doit y avoir des sessions (donc session_start quelque part)

Il est très probable que la classe (qui déclare une session) soit suivie d'un code (peut-être inclus) qui tente de déclarer une session.

C'est pour cette raison que quand on ne sait pas si d'autre code inclus vont ou non déclarer des sessions, il est préférable de faire
if (!session_id()) session_start();


Pour ton second message si tu ne travaille pas en utf-8 mais en iso-8859-1 il faut modifier deux lignes

1/Supprime la ligne header('Content-type: text/html; charset=UTF-8');

2/ remplace la ligne
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
par
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


Et pour la dernière partie de ton message
J'obtiens une erreur si par contre je souhaite envoyé une image qui existe deja dans le dossier.
Il renome l'image, mais m'affiche un joli petit message d'erreur.
PRECISES quel message d'erreur il s'agit (copies- le moi), je ne suis pas devin :wink:

Re: Chemin d'un fichier Upload

par necromoine » 09 nov. 2010, 21:27

Edit :
J'ai ce probleme uniquement si je le met dans la zone "admin" si je le met a la racine du site, aucun probleme apparent...
De plus, les accents ne s'affichent pas, cela vient t'il du fait que je ne travaille pas en UTF-8 ?
J'obtiens une erreur si par contre je souhaite envoyé une image qui existe deja dans le dossier.
Il renome l'image, mais m'affiche un joli petit message d'erreur.

Re: Chemin d'un fichier Upload

par Necromoine » 09 nov. 2010, 21:20

Merci, j'ai reussi a l'installer, mais j'obtient des erreurs .... bizarres, pour ne pas dire étranges.
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /www/zxq.net/t/u/t/tuto/htdocs/admin/class_upload.php:1181) in /www/zxq.net/t/u/t/tuto/htdocs/admin/class_upload.php on line 60

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /www/zxq.net/t/u/t/tutob/htdocs/admin/class_upload.php:1181) in /www/zxq.net/t/u/t/tuto/htdocs/admin/class_upload.php on line 60

Warning: Cannot modify header information - headers already sent by (output started at /www/zxq.net/t/u/t/tuto/htdocs/admin/class_upload.php:1181) in /www/zxq.net/t/u/t/tuto/htdocs/admin/class_upload.php on line
La ligne 1181 est la fin du doc et la ligne 60 un simple IF.
De plus session_start n'est present dans aucun des deux documents.

Pourriez vous m'aider ?