2017-10-11 4 views
0

Je suis nouveau dans l'environnement sharepoint, mais j'ai une question Je veux créer un récepteur d'événements pour vérifier la taille du fichier dans la bibliothèque que l'utilisateur téléchargera , parce que je veux rejeter les tailles supérieures à 1 Mo.Comment vérifier la taille du fichier de document de la bibliothèque avant d'être téléchargé avec le récepteur d'événements

toute aide sera appréciée

Ce que j'ai essayé: Je suis essayé attraper le fichier de pièce jointe pour obtenir sa taille, mais je ne peux pas!

public override void ItemAdding(SPItemEventProperties properties){ 
     using (SPSite oSPsite = new SPSite("http://win-sp:1001/")) 
     { 
      using (SPWeb oSPWeb = oSPsite.OpenWeb()) 
      { 
       oSPWeb.AllowUnsafeUpdates = true; 
       SPDocumentLibrary oLibrary = oSPWeb.Lists["myLibrary"] as SPDocumentLibrary; 

       if (oLibrary != null) 
       { 
        properties.BeforeProperties["Title"].ToString(); 
       } 
      } 
     } 
     base.ItemAdding(properties); 
    } 

Répondre

0

Vous pouvez essayer de modifier le code mentionné ci-dessous:

Nous devons utiliser le properties.AfterProperties["vti_filesize"] ou properties.ListItem.File.TotalLength pour vérifier la taille du fichier.

public override void ItemAdding(SPItemEventProperties properties) 
{ 
    long validFileSize = 1000000;//1MB; 
    long currentFileSize; 
    if (properties.ListItem == null) 
    { 
      using (SPWeb web = properties.OpenWeb()) 
      {     
       if (properties.ListTitle.ToLower() == "myLibrary") 
       {      
         currentFileSize = long.Parse(properties.AfterProperties["vti_filesize"].ToString()); 
         if (currentFileSize > validFileSize) 
         { 
          return false; 
         } 
       }     
      } 
    } 
    else if (properties.ListItem.ParentList.Title.ToLower() == "myLibrary") 
    {   
       currentFileSize = properties.ListItem.File.TotalLength; 
       if (currentFileSize > validFileSize) 
       { 
         return false; 
       } 

    } 
    return true; 
}