Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2011, 12h23   #1
Invité de passage
 
Inscription : avril 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 3
Points : 0
Points : 0
Par défaut Problème accents upload image

Bonjour à toutes et à tous,

J'ai pris un script ajax/php d'upload multiple d'image et l'affichant an miniature après l'upload. J'ai su rajouter quelques lignes dans la page php qui upload les images pour enlever les accents, mais lorsque j'affiche le nom et l'image, l'accent reste ... donc il n'affiche pas l'image ...

Voici le code ajax :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
<script type="text/javascript" >
	$(function(){
		var btnUpload=$('#upload');
		var status=$('#status');
		new AjaxUpload(btnUpload, {
			action: 'upload-file.php',
			name: 'uploadfile',
			onSubmit: function(file, ext){
				 if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
                    // extension is not allowed 
					status.text('Only JPG, PNG or GIF files are allowed');
					return false;
				}
				status.text('Uploading...');
			},
			onComplete: function(file, response){
				//On completion clear the status
				status.text('');
				//Add uploaded file to list
				if(response==="success"){
					$('<li></li>').appendTo('#files').html('<img src="./uploads/'+file+'" alt="" /><br />'+file).addClass('success');
				} else{
					$('<li></li>').appendTo('#files').text(file).addClass('error');
				}
			}
		});
 
	});
</script>
Le contenu de la page index.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<div id="mainbody" >
  <h3>&raquo; AJAX upload</h3>
  <div id="upload" >
    <span>Upload File</span>
  </div>
 
<span>
  <span>
    <span id="status" ></span>
    <ul id="files" ></ul>
  </span>
</span></div>
Et voici le code php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<?php
function no_accent($str_accent) {
   $pattern = Array("/é/", "/è/", "/ê/", "/ç/", "/à/", "/â/", "/î/", "/ï/", "/ù/", "/ô/");
   // notez bien les / avant et après les caractères
   $rep_pat = Array("e", "e", "e", "c", "a", "a", "i", "i", "u", "o");
   $str_noacc = preg_replace($pattern, $rep_pat, $str_accent);
   return $str_noacc;
}
 
$uploaddir = './uploads/'; 
$file = $uploaddir . basename($_FILES['uploadfile']['name']); 
$file=no_accent($file);
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { 
  echo "success"; 
} else {
	echo "error";
}
?>
Donc si j'upload néné.jpg, elle se met bien comme nene.jpg dans /uploads, mais sur la page index.php, il est marqué néné.jpg et donc l'image ne s'affiche pas en dessous.


Merci d'avance à ceux qui prendront un peu de temps pour moi !

dorian
cleex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 02h51   #2
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 25
Points : 35
Points : 35
Bonsoir,

Tu veux aussi renommer ton image côté client, si j'ai bien compris. Par exemple, tu peux utiliser la fonction noaccent de cette page sur file dans ton onComplete

Tu peux même le faire avant de soumettre, ce qui peut t'éviter d'avoir à le mettre dans ton PHP mais attention, ce sera exécuté côté client donc sans garantie aucune. Par exemple, j'ai l'impression que tu filtres le type de fichier uniquement côté client, que se passerait-il si quelqu'un s'amuse à appeler directement ton PHP ?
Kymils est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h38.


 
 
 
 
Partenaires

Hébergement Web