La cosa está en que buscando he encontrado un código en javascript que devuelve el tamaño en bytes de un campo tipo file, pero no me funciona en firefox, y me gustaría saber en que otros navegadores dejaría de funcionar y por qué. En IE funciona.
Código:
<HTML>
<HEAD>
<SCRIPT>
function getFileSize (fileName) {
if (document.layers) {
if (navigator.javaEnabled()) {
var file = new java.io.File(fileName);
if (location.protocol.toLowerCase() != 'file:')
netscape.security.PrivilegeManager.enablePrivilege(
'UniversalFileRead'
);
return file.length();
}
else return -1;
}
else if (document.all) {
window.oldOnError = window.onerror;
window.onerror = function (err) {
if (err.indexOf('utomation') != -1) {
alert('file access not possible');
return true;
}
else
return false;
};
var fso = new ActiveXObject('Scripting.FileSystemObject');
var file = fso.GetFile(fileName);
window.onerror = window.oldOnError;
return file.Size;
}
}
function remove()
{
var n=frm.elements.length
var temp=new Array(n);
for(i=0;i<=n-1;i++)
{
temp[i]=frm.elements[i].value
}
document.frm.reset()
for(i=0;i<=n-1;i++)
{
frm.elements[i].value=temp[i]
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="frm">
<INPUT TYPE="file" NAME="fileName" ONchange="if((getFileSize(this.form.fileName.value))>300000){remove();alert('el fichero supera los 300 KB ')}"> <input type="button" name="sub1" value="Remove" onclick="remove()"><br>
<BR>
<input type="submit" name="enviar" value="Enviar" onclick=>
</FORM>
</BODY>
</HTML>
Está complementado con otro script que 'vacia el campo' file, pero tampoco funciona en todos los navegadores...
Supongo que no tendrá solución pero bueno si alguién me lo puede confirmar...
Salu2