2011-09-02 20 views
11

È possibile utilizzare Javascript per verificare la dimensione del file (sul lato client) prima che venga effettivamente caricato sul server?Javascript per controllare la dimensione del file prima del caricamento in Internet Explorer

L'applicazione è basata su EXTJS e Java ed è limitata all'uso di Internet Explorer 7 su computer Windows XP. Non è consentito l'uso di activeX.

Il flusso di lavoro è tale: L'utente seleziona un file da caricare. La convalida viene attivata immediatamente per verificare il tipo di file e la dimensione del file. Se il limite di file supera il limite, la GUI richiederà l'errore. Se il file è all'interno del limite, il percorso file completo verrà passato al server (java servlet) da caricare.

È possibile eseguire il controllo e la lettura di file con il percorso completo del file con javascript?

risposta

0

Il motivo per cui non è possibile è che sarebbe pericoloso se i browser e i javascript potessero accedere al filesystem dei client.

Questo è negato attivamente e può essere visto come un attacco.

Using jQuery, Restricting File Size Before Uploading

+0

Come su un altro metodo. Supponiamo di avere un modulo di input, di trovare prima il percorso file completo e di inviarlo al codice di controllo della dimensione dei file. Ho guardato uploadify, swfupload, fancifulupload e yuiuploader. Non riesco a essere in grado di "nutrire" il filepath completo in loro. – user924590

3

Non ci sono ancora modo di controllare portabile la dimensione di un file caricato dal browser web. Lo HTML5 File API lo rende possibile, ma non è disponibile in MSIE7 - è attualmente in pista per MSIE10.

Non c'è intenzionalmente alcun modo per determinare il percorso completo di un file caricato, in quanto ciò potrebbe includere informazioni riservate, come il nome dell'utente finale.

+0

Sto cercando il caricamento preliminare del file. Ad esempio, quando ho selezionato il file e quindi PRIMA del caricamento effettivo per ottenere il file e il percorso file completo. – user924590

+1

Come ho notato, non esiste attualmente alcun modo per rilevare la dimensione del file e non c'è (e probabilmente non ci sarà mai) alcun modo per determinare il percorso locale. – duskwuff

4

È possibile con oggetti ActiveX.

<html> 
<head> 
<script> 
function getSize() 
{ 
    var myFSO = new ActiveXObject("Scripting.FileSystemObject"); 
    var filepath = document.upload.file.value; 
    var thefile = myFSO.getFile(filepath); 
    var size = thefile.size; 
    alert(size + " bytes"); 
} 
</script> 
</head> 
<body> 
<form name="upload"> 
<input type="file" name="file"> 
<input type="button" value="Size?" onClick="getSize();"> 
</form> 
</body> 
</html> 
+0

Grazie per il codice. Come ho menzionato nel mio primo post, non andando in modo ActiveX. :) – user924590

-3

Prova sottostante Codice,

<html> 
<head> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script> 
<script type="text/javascript"> 
$(function() { 
$("document").ready(function(){ 
     $("#myFile1").change(function() { 

     var f1=document.getElementById("myFile1").value; 
     if((f.size||f.fileSize)==09765625) 
     { 
     alert("file size is less than 1mb"); 
     } 
     else 
     { 
     alert("file size should not exceed more than 1mb"); 
       $(this).val($.data(this, 'f')); 
     return false; 
     } 

      }); 
}); 
}) 
</script> 
</head> 
<body> 

<input type='file' name="file" id="myFile1" /> 

</body> 
</html> 
+0

Questo codice è fuorviante – nicoabie

Problemi correlati