bonjour tout le monde,

Je voudrais effacer le fakepath qui s'inscris lors du pré-upload et a la place du nom du fichier si possible affiché une vignette photo de ce fichier qui sera uniquement un fichier jpg, gif ou png.

Le fichier de base est le suivant:

http://the-stickman.com/web-developm...-file-element/

le fichier html example.html

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
 
<html>
 
<head>
	<!-- Include the javascript -->
	<script src="multifile.js"></script>
</head>
 
<body>
 
<!-- This is the form -->
<form enctype="multipart/form-data" action="your_script_here.script" method = "get">
	<!-- The file element -- NOTE: it has an ID -->
	<input id="my_file_element" type="file" name="file_1" >
	<input type="submit">
</form>
Files:
<!-- This is where the output will appear -->
<div id="files_list"></div>
<script>
	<!-- Create an instance of the multiSelector class, pass it the output target and the max number of files -->
	var multi_selector = new MultiSelector( document.getElementById( 'files_list' ), 4 );
	<!-- Pass in the file element -->
	multi_selector.addElement( document.getElementById( 'my_file_element' ) );
</script>
</body>
</html>
le fichier js multiple.js

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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
 
/**
 * Convert a single file-input element into a 'multiple' input list
 *
 * Usage:
 *
 *   1. Create a file input element (no name)
 *      eg. <input type="file" id="first_file_element">
 *
 *   2. Create a DIV for the output to be written to
 *      eg. <div id="files_list"></div>
 *
 *   3. Instantiate a MultiSelector object, passing in the DIV and an (optional) maximum number of files
 *      eg. var multi_selector = new MultiSelector( document.getElementById( 'files_list' ), 3 );
 *
 *   4. Add the first element
 *      eg. multi_selector.addElement( document.getElementById( 'first_file_element' ) );
 *
 *   5. That's it.
 *
 *   You might (will) want to play around with the addListRow() method to make the output prettier.
 *
 *   You might also want to change the line 
 *       element.name = 'file_' + this.count;
 *   ...to a naming convention that makes more sense to you.
 * 
 * Licence:
 *   Use this however/wherever you like, just don't blame me if it breaks anything.
 *
 * Credit:
 *   If you're nice, you'll leave this bit:
 *  
 *   Class by Stickman -- http://www.the-stickman.com
 *      with thanks to:
 *      [for Safari fixes]
 *         Luis Torrefranca -- http://www.law.pitt.edu
 *         and
 *         Shawn Parker & John Pennypacker -- http://www.fuzzycoconut.com
 *      [for duplicate name bug]
 *         'neal'
 */
function MultiSelector( list_target, max ){
 
	// Where to write the list
	this.list_target = list_target;
	// How many elements?
	this.count = 0;
	// How many elements?
	this.id = 0;
	// Is there a maximum?
	if( max ){
		this.max = max;
	} else {
		this.max = -1;
	};
 
	/**
	 * Add a new file input element
	 */
	this.addElement = function( element ){
 
		// Make sure it's a file input element
		if( element.tagName == 'INPUT' && element.type == 'file' ){
 
			// Element name -- what number am I?
			element.name = 'file_' + this.id++;
 
			// Add reference to this object
			element.multi_selector = this;
 
			// What to do when a file is selected
			element.onchange = function(){
 
				// New file input
				var new_element = document.createElement( 'input' );
				new_element.type = 'file';
 
				// Add new element
				this.parentNode.insertBefore( new_element, this );
 
				// Apply 'update' to element
				this.multi_selector.addElement( new_element );
 
				// Update list
				this.multi_selector.addListRow( this );
 
				// Hide this: we can't use display:none because Safari doesn't like it
				this.style.position = 'absolute';
				this.style.left = '-1000px';
 
			};
			// If we've reached maximum number, disable input element
			if( this.max != -1 && this.count >= this.max ){
				element.disabled = true;
			};
 
			// File element counter
			this.count++;
			// Most recent element
			this.current_element = element;
 
		} else {
			// This can only be applied to file input elements!
			alert( 'Error: not a file input element' );
		};
 
	};
 
	/**
	 * Add a new row to the list of files
	 */
	this.addListRow = function( element ){
 
		// Row div
		var new_row = document.createElement( 'div' );
 
		// Delete button
		var new_row_button = document.createElement( 'input' );
		new_row_button.type = 'button';
		new_row_button.value = 'Delete';
 
		// References
		new_row.element = element;
 
		// Delete function
		new_row_button.onclick= function(){
 
			// Remove element from form
			this.parentNode.element.parentNode.removeChild( this.parentNode.element );
 
			// Remove this row from the list
			this.parentNode.parentNode.removeChild( this.parentNode );
 
			// Decrement counter
			this.parentNode.element.multi_selector.count--;
 
			// Re-enable input element (if it's disabled)
			this.parentNode.element.multi_selector.current_element.disabled = false;
 
			// Appease Safari
			//    without it Safari wants to reload the browser window
			//    which nixes your already queued uploads
			return false;
		};
 
		// Set row value
		new_row.innerHTML = element.value;
 
		// Add button
		new_row.appendChild( new_row_button );
 
		// Add it to the list
		this.list_target.appendChild( new_row );
 
	};
 
};
J'ai trouver ceci qui a l'air de fonctionner mais ne fonctionne plus en mode multi-upload et je vais avouer ne pas savoir ou le placer ni comment l'utiliser.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
$(function() {
    $("#FileUploader").change(function() {
        $("#FileUploader").val('');
    });
});
Merci pour votre aide.