2012-03-28 11 views
3

Ich muss die Datei validieren, die auf den Server hochgeladen werden soll. Die Validierung muss vor dem Hochladen durchgeführt werden. die Validierung wird auf der Client-Seite abgeschlossen. Diese Aufgabe sollte in der ASP.NET MVC3-Webseite ausgeführt werden. Es sollte auch mit allen Browsern funktionieren. IE9,8,7/FF/Chrome. Ich habe erfahren, dass IE keine FileReader API hat.Überprüfen der Dateigröße vor dem Hochladen

Meine Frage ist, wie Sie die Dateigröße vor dem Hochladen auf einer MVC3-Webseite validieren.

HTML-Syntax

<input type="file" id="myFile" /> 

Javascript Syntax

//gets the element by its id 
var myFile = document.getElementById('myFile'); 

//binds to onchange event of the input field 
myFile.addEventListener('change', function() { 
    //this.files[0].size gets the size of your file. 
    alert(this.files[0].size); 

}); 

ABER, wenn es:

Antwort

1

NET MVC Lösung:

Ich bin mit dem Datentyp HttpPostedFileBase

In Ihrem Views > Shared Ordner, erstellen Sie einen neuen Ordner "EditorTemplates" und benutzen Sie diese genannt:

Ich gebe dann dieses Objekt von der Steuerung zu a Verfahren, die die folgenden:

public Files Upload(HttpPostedFileBase files) 
{ 
    if (files.ContentLength > 0) { 

    ..... 
} 

Die ContentLength Eigenschaft auf der HttpPostedFileBase Klasse enthält die Anzahl von Bytes in der Datei geschrieben

Dies wird es Ihnen eine Datei-Upload-Box zur Verfügung zu stellen, so haben.

Auf der ASP.NET WebForms Lösung:

<asp:FileUpload ID="fuPictures" runat="server" /> 

Machen Sie eine Taste mit einem OnClick oder OnCommand Ereignis, das so etwas wie dies funktioniert:

if (fuPictures.HasFile == true) 
{ 
    int fileSize = fuPictures.FileBytes; 
} 

Das gibt Ihnen die Dateigröße . Hoffe das hilft.

+0

@Praveen diese Hilfe tut Sie? – Termato

0

Wenn es für einen Browser kommt die HTML unterstützt 5, kann es leicht mit einfachen Javascript erreicht werden kommt zu einem älteren Browser (und wir alle schauen auf Sie, Internet Explorer), die einzige Möglichkeit, das auf der Client-Seite zu tun, ist mit ActiveX:

var myFile = document.getElementById('myFile'); 

var myFSO = new ActiveXObject("Scripting.FileSystemObject"); 
var filepath = myfile.file.value; 
var thefile = myFSO.getFile(filepath); 
var size = thefile.size; 
    alert(size + " bytes"); 
0

Sie mithilfe von Jquery erreichen können:

#
<span> 
<b>Attachment</b> (8 MB only)<label id="attached" style="color:red; margin-left:5px"></label> 
</span> 
<input type="file" id="Attachment" name="Attachment" class="admin_textfeildmedium" value="" style="width:551px" accept="image/*"> 
#
jQuery(document).ready(function() { 


jQuery('#Attachment').bind('change', function() { 
          //fileUpload = 0; 
          var iSize = (this.files[0].size/1024); 
          if (iSize/1024 > 1) { 
           if (((iSize/1024)/1024) > 1) { 
            fileUpload = 0; 
           } else { 
            iSize = (Math.round((iSize/1024) * 100)/100); 
            if (iSize <= 8) { 
             fileUpload = 1; 
            } else { 
             fileUpload = 0; 
            } 
           } 
          } else { 
           fileUpload = 1; 
          } 
          if (fileUpload == 0) { 
           // alert("Your attachment exceeded 8MB."); 
           jQuery('#attached').html('Your attachment exceeded 8MB.'); 
           jQuery('#Attachment').val(''); 
          } 

         }); 

        }); 
Verwandte Themen