<div id="Upload"> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="上载到文档库" onclick="Button1_Click" /> </div>
public void UploadFileToDocLib(SPWeb web, string docLibName, FileUpload fUpload, int itemId) { SPList list = web.Lists.TryGetList(docLibName); SPDocumentLibrary docLib = (SPDocumentLibrary)list; if (fUpload.HasFile) { string fn = System.IO.Path.GetFileName(fUpload.PostedFile.FileName); System.IO.Stream stm = fUpload.PostedFile.InputStream; int iLength = (int)stm.Length; if (iLength > 0) { SPFolder rootFolder = docLib.RootFolder; Byte[] filecontent = new byte[iLength]; stm.Read(filecontent, 0, iLength); //try //{ SPFile f = rootFolder.Files.Add(fn, filecontent); SPListItem item = f.Item; item["ItemID"] = itemId; item.SystemUpdate(); stm.Close(); //} //catch (Exception) { Page.ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), string.Format("<script>alert(‘弹出内容!‘)</script>")); } } } }
protected void Button1_Click(object sender, EventArgs e) { this.UploadFileToDocLib(SPContext.Current.Web, "456", this.FileUpload1, 1); }
这段代码是将文档上载到文档库的根文件夹中,也就是:
SPFile f = rootFolder.Files.Add(fn, filecontent),使用了根文件夹对象SPFolder,当然也可以上载到文档库的任意文件夹中,只要得到了相应文件夹的SPFolder对象即可。
如果还想将某些信息随着上载文件也要存储到文档库中,则可以使用上载对象Files.Add()返回的SPFile对象。SPFile对象中有一个Item属性,使用此属性可以得到上载文件的SPListItem对象,这样就可以给文档库中任意的字段赋值了。在上面的代码中,是给ItemID字段赋值。
图2
图2就是“共享文档”,其中可以看到在图1中上载过来的文档,并且还看到了给字段添加的值。以后再遇到自定义上载到文档库的功能,就可以直接将上面的代码复制过来就可以使用了。
原文:http://www.cnblogs.com/914556495wxkj/p/3549716.html