设为首页 收藏本站
查看: 549|回复: 0

[经验分享] SharePoint文档上传管理

[复制链接]

尚未签到

发表于 2015-9-26 09:07:20 | 显示全部楼层 |阅读模式
  
  前台代码:
  <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FileUpload.ascx.cs" Inherits="UploadFile.FileUpload" %>
<table>
<tr>
<td >
请选择列表:
</td>
<td>
<asp:DropDownList ID="ddlListName" runat="server" OnSelectedIndexChanged="ListTileNameDrp_SelectedIndexChanged" Width="122px" AutoPostBack="true">
</asp:DropDownList>
</td>
</tr>
    <tr>
        <td>
            请选择文件夹:</td>
        <td>
            <asp:DropDownList ID="ddlFolderName" runat="server" Width="122px">
            </asp:DropDownList></td>
    </tr>
    <tr>
        <td>
            部门:</td>
        <td>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
    </tr>
    <tr>
        <td colspan="2">
            <asp:FileUpload ID="FileUpload1" runat="server" Width="250px" /></td>
    </tr>
    <tr>
        <td colspan="2">
            <asp:Button ID="Button1" runat="server" Text="上载" Width="51px" /></td>
    </tr>
</table>

  后台代码:
  
  
  using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint;
using System.IO;
  namespace UploadFile
{
    public partial class FileUpload : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                BindListName();
            }
        }
        //绑定列表库
        public void BindListName()
        {
            SPSite site = new SPSite("http://foxconn-shentan/");
            SPWeb myWeb =site.AllWebs["Docs"];
            SPListCollection collList = myWeb.Lists;
            ddlListName.Items.Clear();
            foreach(SPList myList in collList)
            {
                ddlListName.Items.Add(new ListItem(myList.Title));
            }
        }
        //列表库选择项改变时,级联绑定列表库下的文件库
        protected void ListTileNameDrp_SelectedIndexChanged(object sender, EventArgs e)
        {
            SPSite site = new SPSite("http://foxconn-shentan/");
            SPWeb myWeb = site.AllWebs["Docs"];
            SPList myList=myWeb.Lists[ddlListName.SelectedValue];
            ddlFolderName.Items.Clear();
            ddlFolderName.Items.Add("根目录");
            foreach (SPListItem myFolder in myList.Folders)
            {
                ddlFolderName.Items.Add(new ListItem(myFolder.Name));
            }
        }
        //弹出消息框
        private void ShowMessage(string txtMsg)
        {
            Literal msg = new Literal();
            msg.Text = "<script>alert('"+txtMsg+"')</script>";
            Page.Controls.Add(msg);
        }
        //给个用户添加权限
        public void AddedPermission(SPWeb spWeb,SPList spList,string fileName)
        {
            SPListItem listItem = null;
            //遍历列表下的所有记录
            foreach(SPListItem item in spList.Items)
            {
                //哪一条记录的"名称"字段与上传的文档名称一致
                if(item["名称"].ToString()==fileName)
                {
                    listItem = spList.GetItemById(item.ID);
                    break;
                }
            }
            //断开原来列表项所继承的权限,使其可以设置独立权限
            listItem.BreakRoleInheritance(true);
            //将原来所继承的权限通通移除
            foreach(SPRoleAssignment roleAssignment in listItem.RoleAssignments)
            {
                roleAssignment.RoleDefinitionBindings.RemoveAll();
                spWeb.AllowUnsafeUpdates = true;
                roleAssignment.Update();
                listItem.Update();
            }
            //获取将要设置权限的用户
            SPUser myUser = SPContext.Current.Site.RootWeb.AllUsers["SHEN\\a"];
            //定义权限分配
            SPRoleAssignment myRoleAssignment = new SPRoleAssignment(myUser.LoginName,myUser.Email,myUser.Name,myUser.Notes);
            //绑定设置的权限
            myRoleAssignment.RoleDefinitionBindings.Add(spWeb.RoleDefinitions.GetByType(SPRoleType.Reader));
            //把这个权限加到我们的列表中
            listItem.RoleAssignments.Add(myRoleAssignment);
            listItem.Update();
        }
        //上载文档的方法
        public void UploadFile(string srcUrl,string destUrl,string fileName)
        {
            //特权提升,以管理员身份运行下列代码段
            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPWeb myWeb=new SPSite(destUrl).OpenWeb())
                {
                    myWeb.AllowUnsafeUpdates = true;
                    if(!File.Exists(srcUrl))
                    {
                        throw new ArgumentException(String.Format("{0} does not exist",srcUrl),"srcUrl");
                    }
                    SPList list = myWeb.Lists["文档"];
                    FileStream fStream = File.OpenRead(srcUrl);
                    byte[] contents=new byte[fStream.Length];
                    fStream.Read(contents,0,(int)fStream.Length);
                    fStream.Close();
                    //将文件加入到列表中
                    if (ddlFolderName.SelectedValue == "根目录")
                    {
                        SPFile file=list.RootFolder.Files.Add(fileName, contents);
                        SPListItem item = file.Item;
                        string bumeng = TextBox1.Text.ToString();
                        item["部门"] = bumeng;
                        item.Update();
                    }
                    else
                    {
                        Guid id = Guid.Empty;
                        foreach(SPListItem subFolder in list.Folders)
                        {
                            if(subFolder.Name==ddlFolderName.SelectedValue)
                            {
                                id = subFolder.UniqueId;
                                break;
                            }
                        }
                        SPFolder myFolder = myWeb.GetFolder(id);
                        SPFile file= myFolder.Files.Add(fileName,contents);
                        SPListItem item = file.Item;
                        string bumeng = TextBox1.Text.ToString();
                        item["部门"]= bumeng;
                        item.Update();
                        
                    }
                    //设置列表权限的
                    AddedPermission(myWeb,list,fileName);
                }
            });
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            if(FileUpload1.FileName ==string.Empty)
            {
                ShowMessage("请上传您要上传的文件");
                return;
            }
            string fileName = FileUpload1.FileName;
            string filePath = FileUpload1.PostedFile.FileName;
            string fileType = fileName.Substring(fileName.LastIndexOf('.') + 1, 3).ToLower();
            if (fileType != "doc" && fileType != "docx")
            {
                ShowMessage("您上传的文件类型不正确,请重选上传的文件");
                return;
            }
            else
            {
                UploadFile(filePath, "http://foxconn-shentan/Docs/Documents/", fileName);
                ShowMessage("上传成功");
            }
        }
    }
}
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118920-1-1.html 上篇帖子: SharePoint 2010中Metadata Service 下篇帖子: SharePoint 工作流错误日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表