Bonjour,

J'ai un systeme d'upload d'images en ajax qui fonctionne , lorsque j'upload une image mon systeme contact la page upload.php qui contient ce code :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$file = $_FILES['file'];
if(filesize($file['tmp_name']) > 1000000){
   die('{"error":true, "message": "Image trop grande"}'); 
}
move_uploaded_file($_FILES['file']['tmp_name'],'img/upload/'.$_FILES['file']['name']);

Ce code fonctionne et upload mon image si la taille est bonne et me renvoie bien le message "Image trop grande" dans la console si la taille de l'image n'est pas bonne.

En revanche je veux afficher cette erreur à l'utilsateur en utilsant un alert, du coup dans mon script sur ma page medias.php je fais cette fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
uploader.bind('FileUploaded',function(up, file, response){
    data = jQuery.parseJSON(response.response);
    if(data.error){
        alert(data.message); 
    }
});
Mais je n'ai pas d'alert lors d'une erreur et la console me dit "anonymous function" sur cette ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
data = jQuery.parseJSON(response.response);

Je vous mets le script complet au cas où :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
 
<script type="text/javascript">
var uploader = new plupload.Uploader({
	runtimes : 'html5,flash',
	containes: 'plupload',
	browse_button: 'browse',
	drop_element : "droparea",
	url : '<?php echo site_url()."/upload";?>',
	flash_swf_url: '<?php echo base_url()."js/plupload/plupload.flash.swf";?>',
	multipart : true,
	urlstream_upload:true,
	multipart_params:{directory:'test'},
	//max_file_size : '1mb',
	filters : [
		{ title : 'Images', extensions : 'jpg,jpeg,png,gif' }
	]
});
 
uploader.bind('UploadProgress',function(up, file){
	console.log(file);
	$('#'+file.id).find('.progress').css('width',file.percent+'%');
})
 
uploader.init();
 
uploader.bind('FilesAdded',function(up,files){
	var filelist = $('#filelist');
	for(var i in files){
		var file = files[i];
		filelist.prepend('<div id="'+file.id+'" class="file">'+file.name+' ('+plupload.formatSize(file.size)+')'+'<div class="progressbar"><div class="progress"></div></div></div>');
	}	
	$('#droparea').removeClass('hover');
	uploader.start();
	uploader.refresh();
});
 
uploader.bind('Error',function(up, err){
	alert(err.message);
	$('#droparea').removeClass('hover')
	uploader.refresh();
});
 
uploader.bind('FileUploaded',function(up, file, response){
    data = jQuery.parseJSON(response.response);
    if(data.error){
        alert(data.message); 
    }
});
 
 
jQuery(function($){
 
	$('#droparea').bind({
	   dragover : function(e){
	       $(this).addClass('hover'); 
	   },
	   dragleave : function(e){
	       $(this).removeClass('hover'); 
	   }
	});
 
})
</script>