我是sharepoint环境的新手,但我有一个问题 我想创建一个事件接收器来检查用户将上传的库中文件的大小, 因为我想要拒绝大于1 MB的大小。
任何帮助将不胜感激
我尝试过: 我尝试抓住附件文件以获得它的大小,但我不能!
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);
}
答案 0 :(得分:0)
您可以尝试修改下面提到的代码:
我们需要使用properties.AfterProperties["vti_filesize"]
或properties.ListItem.File.TotalLength
来检查文件大小。
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;
}