最近项目中用到在插入Item时绑定附件,可以上传多个附件,很快就写出来了,可是测试一侧老是有问题,经过多番折腾,终于算通过测试。SharePoint 2010上传附件需注意一下几点:

  1. 判断文件是否为空,即文件内容什么都没有。
  2. 判断文件的扩展名是否存在。
  3. 判断文件名称是否包含特殊字符,参考http://support.microsoft.com/kb/894629
  4. 判断文件扩展名称是否被禁用,在管理中心可设置。
  5. 判断文件上传大小,SharePoint 2010  默认是50M。

Code:

1       if(FileUpload1.PostedFile.ContentLength ==0)
2 {
3 stringstr =@"The file name is invalid or the file is empty. A file name can not contain any of the following characters: \ / : * ? "" < > | # { } % ~ & ";
4 labMsg.Text =str;
5 labMsg.Visible =true;
6 return;
7 }
8 if(FileUpload1.PostedFile !=null)
9 {
10 //Check upload file extension name
11 stringfileExtension =System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
12 if(fileExtension ==string.Empty ||fileExtension ==null)
13 {
14 stringstr =@"The file is not extension name.";
15 labMsg.Text =str;
16 labMsg.Visible =true;
17 return;
18 }
19 else
20 {
21 labMsg.Visible =false;
22 }
23 stringfileName =FileUpload1.FileName;
24 intindex =fileName.LastIndexOf(".");
25 fileName =fileName.Substring(0, index);
26 List<string>characters =newList<string>();//\ / : * ? " < > | # { } % ~ & //特殊字符不只有这些,
27 charc ='"';
28 characters.Add("\\");
29 characters.Add("/");
30 characters.Add(":");
31 characters.Add("*");
32 characters.Add("?");
33 characters.Add(c.ToString());
34 characters.Add("<");
35 characters.Add(">");
36 characters.Add("|");
37 characters.Add("#");
38 characters.Add("{");
39 characters.Add("}");
40 characters.Add("%");
41 characters.Add("~");
42 characters.Add("&");
43 foreach(stringstr incharacters)
44 {
45 if(fileName.Contains(str))
46 {
47 stringmessage =@"The file name is invalid or the file is empty. A file name can not contain any of the following characters: \ / : * ? "" < > | # { } % ~ & .";
48 labMsg.Text =message;
49 labMsg.Visible =true;
50 return;
51 }
52 }
53
54 if(CSP.Infrastructure.CSPUtility.CheckUploadFileType(fileExtension.Substring(1)))
55 {
56 stringmessage =@"The following file(s) have been blocked by the administrator: "+FileUpload1.FileName;
57 labMsg.Text =message;
58 labMsg.Visible =true;
59 return;
60 }
61
62 if(FileUpload1.PostedFile.ContentLength >52100000)
63 {
64 labMsg.Text ="Can not upload file that the file size lager 50 M.";
65 labMsg.Visible =true;
66 return;
67 }
68 else
69 {
70 labMsg.Visible =false;
71 }
72
73 if(ViewState["Attachment"] ==null)
74 {
75 ViewState["Attachment"] =CreateDtAttachment();
76 }
77 DataTable dt =(DataTable)ViewState["Attachment"];
78 stringname =FileUpload1.FileName.Trim();
79 DataRow[] rows =dt.Select("AttachmentName = '"+name +"'");
80 if(rows.Length >0)
81 {
82 //Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "msg", "<script>alert('" + FileUpload1.FileName + " is exist !');</script>");
83 labMsg.Text =FileUpload1.FileName +"already exists.";
84 labMsg.Visible =true;
85 return;
86 }
87 else
88 {
89 labMsg.Visible =false;
90 }
91 DataRow row =dt.NewRow();
92 if(dt.Rows.Count !=null)
93 {
94 row["AttachmentId"] =(dt.Rows.Count +1).ToString();
95 }
96 else
97 {
98 row["AttachmentId"] ="0";
99 }
100
101 row["AttachmentName"] =FileUpload1.FileName;
102
103 intlen =FileUpload1.FileBytes.Length;
104 byte[] fileContent =newbyte[len];
105 FileUpload1.FileContent.Read(fileContent, 0, len);
106
107 row["AttachContent"] =fileContent;
108 dt.Rows.Add(row);
109 ViewState["Attachment"] =dt;
110 GvDataBind();
111 }

处理上传文件的特殊符号是比较繁琐的一件事情.SharePoint自带上传文件报错为:"The file name is invalid or the file is empty. A file name can not contain any of the following characters: \ / : * ? "" < > | # { } % ~ & ";

其实还有一些其他特殊字符也会报出此错误。
 
在上传文件的时候需要取得管理中心,限制上传文件的类型,这样就可以与管理中心允许上传文件的列表保持一致,代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
public static bool CheckUploadFileType(string typeName)
       {
           bool isExtensonFile = false;
           SPSite site = SPContext.Current.Site;           
           SPWebApplication webapp = site.WebApplication;
           if (webapp.BlockedFileExtensions.Contains(typeName))
           {
               isExtensonFile = true;
           }
           return isExtensonFile;
       }

http://www.cnblogs.com/dexter2003/archive/2010/12/05/1887806.html

转载于:https://www.cnblogs.com/Areas/archive/2011/12/06/2277613.html

SharePoint 2010 列表项代码绑定附件心得 (FileUpload上传附件)相关推荐

  1. java fileupload上传附件到服务器,可携带参数(简单易用)可跨域,看这篇就够了

    一个很简单实用的上传附件实例 首先主要用到的包: 先看服务端代码,我这里是用了Servlet,在web.xml配置 <servlet><servlet-class>com.fi ...

  2. vue使用upload上传附件

    vue使用upload上传附件 这里的上传附件包括视频,图片,等各种格式 效果图 文章目录 vue使用upload上传附件 这里的上传附件包括视频,图片,等各种格式 效果图 ![在这里插入图片描述]( ...

  3. SharePoint 上传附件

    更改SharePoint自定义列表的新建页面,开发自定义控件,通过SPListItem newItem = List.Items.Add(), newItem["Title"]=& ...

  4. 20100519 学习记录:asp CreateFolder/上传附件

    新增一个上传附件的功能. 在网上找了一下,基本都是在化境HTTP上传程序基础上改的,灰常感谢这个源代码的开发者,深深鞠躬. 不过这个代码要求在上传图片时,输入的文件夹必须是已存在的文件夹,不然就会出错 ...

  5. 上传附件_留学落户|上传附件预审时一定一定要注意的问题!

    点击上方蓝色字体,关注启铭君. www.minqifudao.com 启铭君相信大家都知道,从2019年留学落户"一网通办"新系统上线,可以在网上进行材料申报,"让数据多 ...

  6. 通达oa wbupload.php,关于通达OA上传附件类型限制的设置

    关于上传附件类型限制的设置 有些用户在使用OA系统的过程中,要求只允许上传比如后缀名为doc,xls,ppt等的附件文件.如何设置才能实现这一点呢?下面简单介绍下设置方法. 1.在该路径MYOA\we ...

  7. wangeditor: 上传图片+上传视频+上传附件(自定义)完整使用

    wangeditor: 上传图片+上传视频+上传附件(自定义)完整使用 一:项目需求:①角色为管理员可以新增编辑文章 + ②点击可以看文章详情 +③ 角色为管理员可以修改编辑文章 二:效果: ①角色为 ...

  8. 上传附件----q-uploader

    上传附件----q-uploader 一,用到的技术:Vue + Quasar 1,附件上传这种组件在很多UI框架里都有,今天写的是在Quasar框架下 : 属性 说明 url 用来处理上传的服务器的 ...

  9. 学一学微信公众号如何高效上传附件

    在过去的几年时间中,我一直是做公众号运营工作,见证了微信公众号由小到大的成长,也在这个过程中不断地完善自己的公众号运营技能,让自己能够更好的适应公众号的运营. 其中,有一项技能是微信公众号运营必须掌握 ...

最新文章

  1. 普通内部类里面为什么不能有static字段
  2. java面试 内存中堆和栈的区别
  3. 反射机制(1)认识Class类
  4. winform 基础
  5. 堆排序分析(大根堆为例,由小到大排序)
  6. aixs1 生成java代码_通过axis1.4 来生成java客户端代码
  7. 软件手游app介绍推广页html
  8. centos 需要哪些常用端口_仓库加盟:电商仓库需要配备哪些常用仓储设备
  9. Python爬取千条相亲数据,看看单身率90%的中国男女都在挑剔什么
  10. Eigen3的库使用
  11. 中原工学院计算机网络,计算机网络 考试重点 中原工学院.doc
  12. html用什么打开swf文件怎么打开,swf文件用什么打开,详细教您打开swf文件的操作...
  13. t分布 u分布 卡方分布_F分布、t分布、正太分布与卡方分布的联系与区别
  14. ViewPager圆形指示器
  15. zookeeper压缩包下载地址
  16. Ubuntu下添加开机启动项的2种方法
  17. Pandas之十二速查手册
  18. L1 批判思维 - 03信息甄别 - 第一章:被动接受时,学会筛选信息 1.1 追踪信息来源
  19. 苏州大学计算机评估全国第几位,重磅!全国首次专业学位水平评估结果公布,你的学校排第几?...
  20. 招标服务费计算小程序(2022-2-10)重写

热门文章

  1. 网站内链为什么要做上下文链接?对网站优化有什么帮助?
  2. 思科ucs-b系列服务器,思科统一计算系统UCS B系列刀片推荐
  3. 软件开发计划_敏捷软件开发实践:估算与计划读书笔记113第11章 确定渴望度优先级...
  4. 服务器里这么修改404页面,网站404页面怎么做
  5. 石嘴山考计算机在哪里报名,石嘴山中考报名系统
  6. java unsafe cas_Java Unsafe CAS 小试
  7. option:contains后面加变量_Python基础篇 -2:初识Python中的变量
  8. 服务器cpu天梯图_九月手机处理器排名 2020年9月最新版手机CPU天梯图
  9. 如何完美隐藏Disposable的存储和销毁过程(一)
  10. 开发日记-20190423 关键词 模块化完整方案实现 blog读后感