Bonjour à tous,

Je suis confrontée à un problème avec le plugin Plupload et malgré l'aide de mes collègues, on ne trouve pas d'explication et donc pas de solution. Et google semble ne pas en avoir entendu parler non plus.

Plupload est un plugin d'upload d'images et fichier. Il fonctionne très bien. Sauf que pour une raison étrange, sur quelques utilisateurs (une dizaine sur une masse importante), lorsqu'il fait son travail, il renomme des fichiers de façon bizarre.
Pour donner un exemple.
Je veux uploader "mon_image.png", le plugin va rechercher si d'autres fichiers portent ce nom dans son dossier de destination. Si c'est le cas, il va renommé le fichier "mon_image (1).png".
Une fois le fichier dans mon dossier, il procède à l'enregistrement en base et il va respecter le nom de l'image selon la situation qu'il a rencontré.
Hors, dans notre cas, pour une raison indéterminée, il renomme systématiquement le fichier en "mon_image--1.png" et s'il existe la fois suivante "mon_image--2.png". Sauf qu'il enregistre en base "mon_image.png", comme si il n'y avait jamais eu de souci.

Autre hic, je n'arrive absolument pas à reproduire ce bug. Les utilisateurs sont sur la dernière version de IE, mais là aussi, de mon côté, tout se passe bien et sur les pc de mes collègues, tout va bien aussi. J'ai constaté que ce problème avait déjà eu lieu fin 2016 (je n'étais pas dans la boîte) mais selon le client, il semble que cela n'avait pas été repéré. Donc aucune idée de ce qui a pu résoudre le problème entre fin 2016 et maintenant.

Je vous donne le code du plupload (ci-dessous). On a légèrement retouché le plugin pour nos besoins.

Quelqu'un aurait-il déjà croisé ce souci?

Merci pour votre attention.

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
function addUpload(form_,type_,container_,button_,multiple_,ext_,params) {
		var extended_parameters = new Array();
		type_ = 'file_name_'+type_+'[]';
		return addUploadApply(form_,type_,container_,button_,multiple_,ext_,params, extended_parameters);
	}
 
//La principale différence entre addUpload et addUploadV2 est que pour la seconde, le name fourni pour le champ (variable type_ = input_name) n'est pas réécrit par la fonction, il est utilisé tel quel ce qui est bien plus pratique pour le dévelopepment
	function addUploadV2(form_id, input_name, container_id, upload_button_id, multiple_, ext_, http_get_params, extended_parameters) {
		return addUploadApply(form_id, input_name, container_id, upload_button_id, multiple_, ext_, http_get_params, extended_parameters);
	}
 
	//Cette fonction a été redéfinie dans le cadre de MultiALL
	//On y ajoute un tableau de parameters afin de gérer d'éventuels paramètres supplémentaires, ce qui est compliqué à faire à l'heure actuelle
	//Ca nous servira plus tard
	function addUploadApply(form_,type_,container_,button_,multiple_,ext_,params, extended_parameters){ nb_upload_fields++;
 
	 	var nb_fichiers = 0;
		var total_files_size = 0;
 
		var file_upload = '/backoffice/upload.php?'+params;
 
		var uploader = new plupload.Uploader({
			multi_selection: false,
			form : form_,
			runtimes : 'gears,html5,flash,silverlight,browserplus,html4',
			browse_button : button_,
			container : container_,
			//max_file_size : '2mb',
			max_queue_size : '62914560', // 60 Mo
			url : file_upload,
			flash_swf_url : '/plupload/plupload.flash.swf',
			silverlight_xap_url : '/plupload/plupload.silverlight.xap',
			filters : [
				{title : "Files", extensions : ext_}
			]
		});
 
		uploader.init();
 
 
		uploader.bind('FilesAdded', function(up, files) {
 
			/*$('#next_btn').hide();*/
			if(!multiple_ && nb_fichiers > 0){
				$('#'+container_+' .inputlist, #'+container_+' .filelist').html("");
				nb_fichiers = 0;
			}
 
			$.each(files, function(i, file) {
				total_files_size += file.size;
			});
 
			if(total_files_size < uploader.settings.max_queue_size){
 
				$.each(files, function(i, file) {
 
					nb_fichiers++;
					c_ = '<div class="col-md-4" id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b>';
 
					if(multiple_){ $('#'+container_+' .filelist').append(c_); }
					else{ $('#'+container_+' .filelist').html(c_); }
 
				});
 
				nb_upload_uploading++;
				up.refresh(); // Reposition Flash/Silverlight
				uploader.start();
 
			}else{
				$.each(files, function(i, file) {
					total_files_size -= file.size;
					up.removeFile(file);
				});
				if(!$('#'+container_+' .filelist div').length) $('#'+container_+' .filelist').append('<div></div>');
				$('#'+container_+' .filelist div').prepend('<b>ERROR</b> ').css('color', '#ff0000');
				alert('Error : 11 The selected file is too big.');
				//$('#plupload_error').modal();
			}
 
		});
 
		uploader.bind('UploadProgress', function(up, file) {
			$('#'+uploader.settings.form+' #' + file.id + " b").html(file.percent + "%");
		});
 
		uploader.bind('Error', function(up, err) {
 
				$('#'+container_+' .filelist div').prepend('<b>ERROR</b> ').css('color', '#ff0000');
				alert('Error : '+obj.error.code+' '+obj.error.message);
 
			/*$('#'+uploader.settings.form+' #filelist').append("<div>Error: " + err.code +
				", Message: " + err.message +
				(err.file ? ", File: " + err.file.name : "") +
				"</div>"
			);*/
 
			up.refresh(); // Reposition Flash/Silverlight
		});
 
		uploader.bind('FileUploaded', function(up, file, info) {
			$('#'+container_+' .inputlist ' + file.id + " b").html("100%");
			var obj = JSON.parse(info.response);
 
			// Détection d'une erreur dans le PHP
			if (obj.error !== undef) {
				$('#'+container_+' .filelist div').prepend('<b>ERROR</b> ').css('color', '#ff0000');
				alert('Error : '+obj.error.code+' '+obj.error.message);
				return false;
			}
 
			var c_ = '<input type="hidden" name="'+type_+'" value="' + obj.result.cleanFileName + '" class="uploadedFile ' + file.id + '" />';
	    	if(multiple_){ $('#'+container_+' .inputlist').append(c_); }
	    	else{ 
          //$('#'+container_+' .inputlist').html("");
          if ($('#'+container_+' .inputlist .uploadedFile').length && $('#'+container_+' .inputlist .uploadedFile').attr('name') != '' ) $('#'+container_+' .inputlist .uploadedFile').val(obj.result.cleanFileName); 
          else $('#'+container_+' .inputlist').html(c_);
        }
        if ($('#'+container_+' .fileRemoveButton').length) $('#'+container_+' .fileRemoveButton').show(); 
		});
 
		uploader.bind('UploadComplete', function(up, file) {
			nb_upload_completed++;
			if(check_upload()){ $('#next_btn').show(); }
		});
 
	}