我一直以为只有在Document Library里面的File才会支持在线编辑。直到今天早上我才发现用IE打开List里面的Attachments也是支持在线编辑的,但前提是必须是IE浏览器。
目前正在开发的项目,我开始设计时是把所有的审批信息存放在List中,上传的文档以Attachments形式保存于List中,昨天客户来公司,我演示的时候,用Chrome打开附件,直接下载了(以后建议用IE),客户需要在线编辑功能,还狠狠的批了我们一顿,附件不能在线编辑,那我审核个毛线。(其实是可以的,用IE就行。)结束后,我也没多想(经验不足)直接对代码进行该了,将FileUpload上传的文件保存到一个Document Library 的Log中,其实这完全是多余的。
如果你想在SharePoint中,想对上传的文档进行在线的编辑,有2种方法,一种当然是上传到文档库啦,还有一种就是以Attachments上传到List。
List
首先,对ListItem进行Update操作。
if (fileAttachment.HasFile) { try { foreach (var file in fileAttachment.PostedFiles) { newItem.Attachments.Add(file.FileName, file.InputStream.ReadFully()); } } catch () { } } newItem.Update();
然后List的ListItem编辑Webpart中,用HyperLink画出附件,其实就是获取附件的Url地址
SPListItem newItem = this._applyItemList.GetItemById(this.ObjectId); HyperLink hyperLink=null; foreach (string currentAttachment in newItem.Attachments) { hyperLink=new HyperLink(); hyperLink.ID = Guid.NewGuid().ToString(); string attachmentAbsoluteURL = newItem.Attachments.UrlPrefix + currentAttachment; SPFile attachmentFile = this._currentWeb.GetFile(attachmentAbsoluteURL); hyperLink.Text = attachmentFile.Name; hyperLink.NavigateUrl = attachmentAbsoluteURL; phAttachment.Controls.Add(hyperLink); //添加换行 phAttachment.Controls.Add(new LiteralControl("<br />")); }
最后在编辑的Webpart如下所示,直接用IE打开,支持在线编辑,但没有历史记录
当然,你也可以将文档上传到文档库,上传到文档库里面你的操作有历史记录
Document Library
比如我将FileUpload上传的文件保存到文档库中的相应文件夹,以ListID+“-”+ListItemID命名的文件夹,这样避免了上传文档重名的问题,首先判断是否存在这个文件夹,不存在则创建,当创建完成后,将文档存放在文档库中此文件夹下:
if (fileAttachment.HasFile) { try { foreach (var file in fileAttachment.PostedFiles) { using (SPSite logSite = SPContext.Current.Site) { using (SPWeb logWeb = logSite.AllWebs["log"]) { logWeb.AllowUnsafeUpdates = true; SPDocumentLibrary library = logWeb.Lists["ApproveAttachmentLog"] as SPDocumentLibrary; string rootUrl = library.RootFolder.Url; string listId = _applyItemList.ID.ToString(); string listItemId = newItem.ID.ToString(); string folderUrl = rootUrl + "/" + listId+"-" + listItemId; SPFolder folder = logWeb.GetFolder(folderUrl); if (!folder.Exists) { SPListItem newFolder = library.Folders.Add(library.RootFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder, listId +"-"+ listItemId); newFolder.Update(); } Stream stream = file.InputStream; byte[] bytFile = new byte[Convert.ToInt32(file.ContentLength)]; stream.Read(bytFile, 0, Convert.ToInt32(file.ContentLength)); folder.Files.Add(System.IO.Path.GetFileName(file.FileName), bytFile, true); logWeb.AllowUnsafeUpdates = false; } } } } catch (Exception) { } }
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/web/sharepoint/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文档
, string
, file
, 附件在线预览
, 文件夹
, 附件上传
, 在线编辑器
, hyperlink
, 在线
获取在线文档
sharepoint 在线编辑、在线文档编辑、在线word文档编辑、office文档在线编辑、java在线编辑word文档,以便于您获取更多的相关知识。