通过编程的方式给列表项添加附件

最近项目中有一个需求,给列表项添加附件。用列表来保存信息是非常方便的,但是在附加文件时遇到了一些周折。在此记录下所用的部分代码,欢迎和大家多多交流。

假设页面有一个上传控件,名叫“FileUpload1”,在点击上传之后,后台得到上传的文件,然后将文件附加到列表项中。

 

if (FileUpload1.HasFile)

{

                //以下代码得到文件流 

                    Stream fStream = FileUpload1.PostedFile.InputStream;

                    byte[] contents = new byte[fStream.Length];

                    fStream.Read(contents, 0, (int)fStream.Length);

                    fStream.Close();

                    fStream.Dispose();

 

FileInfo file = new FileInfo(FileUpload1.PostedFile.FileName);

SPListItem item = list.GetItemById(itemId);//要给该记录附加文件

if (item != null)

                    {

                        item.Attachments.Add(file.Name, contents);//给该记录附加文件,可以附加多个附件。

                        item.Update();

                    }

 

 

以上是给列表项附加一个文件,下面代码是直接给文档库上传一个文件。如果以资源管理器的方式打开一个文档库,可以看到,文档库中的文件形式和本地的文件夹类似,所以给文档库上传文件的上传方式和asp.net往服务器传文件几乎是一样的。

using (SPWeb site = SPContext.Current.Web)

           {

               try

               {

                   site.AllowUnsafeUpdates = true;

                   FileStream fStream = FileUpload1.PostedFile.InputStream;

                   byte[] contents = new byte[fStream.Length];

                   fStream.Read(contents, 0, (int)fStream.Length);

                   fStream.Close();

                   site.Files.Add(destUrl, contents, true);// destUrl是文件在服务器上存储的地址,例如http://mysite/document/abc.txt

                   site.AllowUnsafeUpdates = false;

               }

               catch

               { }

           }

posted on 2011-02-24 15:14  名可真难起  阅读(811)  评论(0编辑  收藏  举报