<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Retour à La Source • Tag: Firefox • RSS</title>
		<link>http://www.ab-d.fr/tag/Firefox/</link>
		<description>Retour à La Source • Tag: Firefox • RSS</description>
		<copyright>http://www.ab-d.fr/tag/Firefox/ (c) 2010</copyright>
		<language>fr</language>
		<pubDate>Sat, 31 Jul 2010 15:02:43 +0100</pubDate>
		<generator>Retour à La Source • Tag: Firefox • RSS • version 1.0</generator>
		<webMaster>noreply@ab-d.fr ( Benoit Asselin )</webMaster>
		<image>
			<url>http://www.ab-d.fr/images/rss.gif</url>
			<title>Retour à La Source • Tag: Firefox • RSS</title>
			<link>http://www.ab-d.fr/tag/Firefox/</link>
			<width>90</width>
			<height>30</height>
		</image>

		<item>
			<title>Firefox 3 et input type=file Nouvelle Formule ! ( upload, path, nsIDOMFile )</title>
			<link>http://www.ab-d.fr/date/2008-07-12/</link>
			<pubDate>Sat, 12 Jul 2008 08:40:04 +0100</pubDate>
			<author>noreply@ab-d.fr ( Benoit Asselin )</author>
			<category><![CDATA[Firefox]]></category>
			<category><![CDATA[Javascript]]></category>
			<category><![CDATA[XHTML]]></category>
			<category><![CDATA[DOM]]></category>
			<description><![CDATA[<p>
De bon matin, je me lève, j'arrive sur une de mes applications en ligne, et là horreur ! cette dernière ne fonctionne plus sous Mozilla Firefox 3... Après analyse des petits messages d'erreurs, je me rends à l'évidence le formulaire <code>&lt;input type="file" /&gt;</code> ne se comporte plus de la même façon...
</p>

<p>
Les développeurs de Firefox 3 ont corrigé une petite faille de sécurité : Lorsque vous cliquez sur le bouton <strong>Parcourir</strong> le <code>value</code> de votre zone <code>input type="file"</code> contenait le nom du fichier ainsi que son chemin sur le disque dur, et bien aujourd'hui cela n'est plus, vous n'aurez plus que le nom du fichier.<br />
<em>D'ailleurs, Opera Browser se comporte aussi de la sorte, pour le moment Microsoft Internet Explorer et Apple Safari retournent toujours le chemin complet du fichier.</em>
</p>

<p>
Une très bonne nouvelle s'accompagne de ce petit changement, vous pouvez à présent accéder aux données du fichier sélectionné par l'utilisateur en Javascript sans poster le formulaire grâce à l'objet <code>FileList</code>. 
</p>

<p>
Un exemple vaut mieux qu'un long discours, voici une page qui vous permettra d'essayer cette nouvelle fonctionnalité (<em>qui je le rappelle, ne fonctionne que sur Mozilla Firefox 3</em>) :
</p>

<pre>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"&gt;
&lt;head&gt;
	&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
	&lt;title&gt;input type=file &amp; Firefox 3&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
	
&lt;h1&gt;input type=file &amp; Firefox 3&lt;/h1&gt;
	
&lt;script type="text/javascript"&gt;
// &lt;![CDATA[

function inputFileOnChange() {
	var v_console = '';
	v_console += 'value: ' + document.getElementById('fichier').value;
	v_console += '&lt;br \/&gt;';
	
	if(document.getElementById('fichier')<strong>.files</strong>) {
		// Support: nsIDOMFile, nsIDOMFileList
		v_console += 'files.length: ' + document.getElementById('fichier')<strong>.files.length</strong>;
		v_console += '&lt;br \/&gt;';
		
		v_console += 'fileName: ' + document.getElementById('fichier')<strong>.files.item(0).fileName</strong>;
		v_console += '&lt;br \/&gt;';
		
		v_console += 'fileSize: ' + document.getElementById('fichier')<strong>.files.item(0).fileSize</strong>;
		v_console += '&lt;br \/&gt;';
		
		v_console += 'data: ' + document.getElementById('fichier')<strong>.files.item(0).getAsDataURL()</strong>;
//		v_console += 'data: ' + document.getElementById('fichier')<strong>.files.item(0).getAsBinary()</strong>;
//		v_console += 'data: ' + document.getElementById('fichier')<strong>.files.item(0).getAsText()</strong>;
		v_console += '&lt;br \/&gt;';
	};
	
	document.getElementById('console').innerHTML = v_console;
};

// ]]&gt;
&lt;/script&gt;
	
&lt;div&gt;
	&lt;input type="file" name="fichier" id="fichier" onchange="inputFileOnChange();" /&gt;
	&lt;br /&gt;&lt;br /&gt;
	&lt;code id="console"&gt;...console...&lt;/code&gt;
&lt;/div&gt;
	
&lt;/body&gt;
&lt;/html&gt;

</pre>

<p>Documentation officielle :<br />
&bull; <a href="http://developer.mozilla.org/en/docs/nsIDOMFile">http://developer.mozilla.org/en/docs/nsIDOMFile</a><br />
&bull; <a href="http://developer.mozilla.org/en/docs/nsIDOMFileList">http://developer.mozilla.org/en/docs/nsIDOMFileList</a><br />
&bull; <a href="http://www.w3.org/TR/file-upload/">http://www.w3.org/TR/file-upload/</a><br />
</p>

<hr /><a href="http://res.feedsportal.com/viral/bookmark_fr.cfm?link=http%3A%2F%2Fwww.ab-d.fr%2Fdate%2F2008-07-12%2F&title=Firefox+3+et+input+type%3Dfile+Nouvelle+Formule+%21+%28+upload%2C+path%2C+nsIDOMFile+%29"><img src="http://www.ab-d.fr/images/bookmark.gif" border="0" /></a><br /><br />]]></description>
			<comments>http://www.ab-d.fr/tag/Firefox/</comments>
			<guid isPermaLink="false">http://www.ab-d.fr/date/2008-07-12/</guid>
		</item>

	</channel>
</rss>
