Sharepoint 列表ItemAdding事件判断文件类型、获取当前上传的文件

时间:2022-12-11 16:14:58
 using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;
using System.Web;
using System.IO; namespace TestSharePointProject.DocEvent
{
/// <summary>
/// List Item Events
/// </summary>
public class DocEvent : SPItemEventReceiver
{
HttpContext currentContext;
public DocEvent()
{
currentContext = HttpContext.Current;
} /// <summary>
/// An item is being added.
/// </summary>
public override void ItemAdding(SPItemEventProperties properties)
{
//将上载的文件URL按.分为两部分:URL和文件类型
string[] fileUrl = properties.BeforeUrl.Split('.');
if (fileUrl.Length == )
{
properties.ErrorMessage = "文件类型不合法!";
properties.Cancel = true;
}
else
{
//获取上载的文件类型
string postFix = fileUrl[fileUrl.Length - ].ToLower();
if (!postFix.Contains("xlsx") && !postFix.Contains("xls"))
{
properties.ErrorMessage = "请选择上传Excel文件!";
properties.Cancel = true;
}
else {
if (currentContext != null)
{
if (currentContext.Request.Files.Count > )
{
//获取Item中被上传的所有文件
for (int i = ; i < currentContext.Request.Files.Count; i++)
{
if (!string.IsNullOrEmpty(currentContext.Request.Files[i].FileName))
{
FileStream file = null;
string path = currentContext.Request.Files[i].FileName.ToString(); // Read the file. This appears to be the offending line
file = File.OpenRead(path);
byte[] Content = new byte[file.Length];
file.Read(Content, , (int)file.Length);
file.Close();
file.Dispose();
//itemToAdd.Attachments.Add(currentContext.Request.Files[i].FileName, Content);
}
}
}
}
}
}
} /// <summary>
/// An item is being updated.
/// </summary>
public override void ItemUpdating(SPItemEventProperties properties)
{
base.ItemUpdating(properties);
} }
}

Sharepoint 列表ItemAdding事件判断文件类型、获取当前上传的文件的更多相关文章

  1. jmert中如何测试上传文件接口(测试上传excel文件)

    第一次用jmeter这个工具测试上传接口,以前没做过这一块,导致走了很多弯路.特地把经验谢谢,怕自己以后忘记... 一,jmeter如何上传文件 jmeter 的 http requests post ...

  2. JFinal中文件上传后会默认放置到WebContent的upload包下,但是tomcat会自动重启,当我们再次打开upload文件夹查看我们刚刚上传的文件时,发现上传的文件已经没有了。

    JFinal中文件上传后会默认放置到WebContent的upload包下,但是tomcat会自动重启,当我们再次打开upload文件夹查看我们刚刚上传的文件时,发现上传的文件已经没有了.因为tomc ...

  3. web&period;config文件配置解决网站上传大文件限制

    Asp.Net网站对上传文件的大小,请求执行的时间都做了限制,上传的文件如果超过限制或者执行上传时间超出, 文件上传都将失败. 因此,需要配置web.config来增加最大文件上传的大小和执行超时时间 ...

  4. 上传文件到CDN,上传后文件错误。

    开始用xfp上传,发现文件错误.后来改用filezilla,上传后文件正确.害苦了我啊

  5. C&num; 对sharepoint 列表的一些基本操作&comma;包括添加&sol;删除&sol;查询&sol;上传文件给sharepoint list添加数据

    转载:http://www.cnblogs.com/kivenhou/archive/2013/02/22/2921954.html 操作List前请设置SPWeb的allowUnsafeUpdate ...

  6. Github使用&period;gitignore文件忽略不必要上传的文件 &lpar;转&rpar;

    原文地址: https://blog.csdn.net/gjy211/article/details/51607347 常用编程语言及各种框架平台下的通用   .gitignore   文件 http ...

  7. python发送post请求上传文件,无法解析上传的文件

    前言 近日,在做接口测试时遇到一个奇葩的问题. 使用post请求直接通过接口上传文件,无法识别文件. 遇到的问题 以下是抓包得到的信息: 以上请求是通过Postman直接发送请求的. 在这里可以看到消 ...

  8. div滚动条弹出层效果 (所需要的css文件和js文件,都已经上传到文件里面了progressbar&period;rar)

    <%--总的弹出层--%> <div class="tcck" id="joinclub" style="display:none& ...

  9. plupload上传整个文件夹

    大容量文件上传早已不是什么新鲜问题,在.net 2.0时代,HTML5也还没有问世,要实现这样的功能,要么是改web.config,要么是用flash,要么是用一些第三方控件,然而这些解决问题的方法要 ...

随机推荐

  1. Linux &sol;proc&sol;&dollar;pid部分内容详解

    auxv /proc/[pid]/auxv包含传递给进程的ELF解释器信息,格式是每一项都是一个unsigned long长度的ID加上一个unsigned long长度的值.最后一项以连续的两个0x ...

  2. Mat转换为QImage

    请留意: opencv为3.0.0版本,Qt为4.8.4版本 #include"image1.h" #include<QApplication> #include&lt ...

  3. 未能加载文件或程序集Microsoft&period;ReportViewer&period;WebForms&comma; Version&equals;10&period;0&period;0&period;0

    解决方案如下ASP.NET项目使用VS2010开发,部署到windows 2008环境中,出现未能加载文件或程序集“Microsoft.ReportViewer.WebForms, Version=1 ...

  4. HashSet HashTable HashMap的区别 及其Java集合介绍

    (1)HashSet是set的一个实现类,hashMap是Map的一个实现类,同时hashMap是hashTable的替代品(为什么后面会讲到). (2)HashSet以对象作为元素,而HashMap ...

  5. Linux 安装 Nginx

    1. nginx的安装: 开始学习如何安装nginx,首先安装必要的软件: # yum install libtool # yum install -y gcc-c++ # yum install z ...

  6. LeetCode Rotate Image (模拟)

    题意: 将一个n*n的矩阵顺时针旋转90度. 思路: 都是差不多的思路,交换3次也行,反转再交换也是行的. class Solution { public: void rotate(vector&lt ...

  7. Python Requests库

    背景 Requests is an elegant and simple HTTP library for Python, built for human beings. Requests是一个优雅简 ...

  8. Redis教程03——Redis 发布&sol;订阅(Pub&sol;Sub)

    Pub/Sub 订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者).而是发布的消息分到不同的频道,不需要知道什么样的订阅者 ...

  9. Feature Scaling深入理解

    Feature Scaling 可以翻译为特征归一化,或者数据归一化,比如统计学习中,我们一般都会对不同量纲的特征做归一化,深度学习中经常会谈到增加的BN层,LRN层会带来训练收敛速度的提升,等等.问 ...

  10. mysql数据库查询库中所有表所占空间大小

    SELECT CONCAT(table_schema,'.',table_name) AS 'TABLE_NAME', CONCAT(, ),'M') AS 'ROW_SIZE', CONCAT( ) ...