SharePoint文档上传管理

 

前台代码:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FileUpload.ascx.cs" Inherits="UploadFile.FileUpload" %>
<table>
<tr>
<td  style="width:138px; height: 24px;">
请选择列表:
</td>
<td style="width:133px; height: 24px;">
<asp:DropDownList ID="ddlListName" runat="server" OnSelectedIndexChanged="ListTileNameDrp_SelectedIndexChanged" Width="122px" AutoPostBack="true">
</asp:DropDownList>
</td>
</tr>
    <tr>
        <td style="width: 138px">
            请选择文件夹:</td>
        <td style="width: 133px">
            <asp:DropDownList ID="ddlFolderName" runat="server" Width="122px">
            </asp:DropDownList></td>
    </tr>
    <tr>
        <td style="width: 138px">
            部门:</td>
        <td style="width: 133px">
            <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" style="text-align: right">
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" 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("上传成功");
            }
        }
    }
}

 

转载于:https://www.cnblogs.com/shentanyi/archive/2009/06/24/1510475.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何制定有价值的目标

写于2017年07月09日23:29现在修改发布到公众号声明原创公司会制定一系列目标&#xff0c;个人也可以制定一些目标&#xff0c;有利于自我学习成长。那么看我这篇文章可以告诉你如何制定有价值的目标。会制定有价值的目标&#xff0c;绝对超越很多人。SMART原则王健林之前说定个…

清除dns缓存命令行_怎么防止移动dns劫持,防止移动dns劫持要先了解什么是dns劫持...

本人以网络技术出身&#xff0c;近两年接触CDN网络&#xff0c;处理了一些CDN方面的网络问题&#xff0c;大多数以运营商丢包&#xff0c;延迟抖动为主&#xff0c;也处理一些硬件故障&#xff0c;比如机械硬盘的读写io测试&#xff0c;内存条兼容性测试&#xff0c;服务器IPMI…

php 修改上传文件大小 (max_execution_time post_max_size)

转载链接&#xff1a;http://hi.baidu.com/ttl289/item/683c8223a54c6d0f76272cd7 有些朋友要通过自己的网站后台&#xff0c;包括论坛&#xff0c;来上传一些文件&#xff0c;php一般为2m&#xff0c;或8m&#xff08;以下我们按默认为2m&#xff09;&#xff0c;接下来就是来…

移动硬盘格式化(pc和mac共用)-菜鸟级解决方案[转]

用pc的时候买了一个320G的移动硬盘&#xff0c;从来没考虑过什么格式化的问题&#xff0c;插上就用了。 后来接触mac才发现pc和mac在移动存储设备的格式化上还是有不少冲突的。如果你的移动硬盘mac上不能修改&#xff0c;或者pc上找不到&#xff0c;那就尽情得批判万恶的资本主…

【php】php的ssh2扩展的安装

ssh2(secure shell2)&#xff0c;对于远端主机提供高安全性的资料传输工作。安装&#xff1a;1、首先要装OpenSSL。 2、要安装 libssh2../configure && make all install3、再然后&#xff0c;安装PECL/ssh2可以使用 pear install ssh2安装&#xff08;有的说是 pear i…

回答知乎问题:你写过什么自认为惊艳的诗?

首次整理于 2019-07-27 22:04:00&#xff0c;现在整理发布在公众号申明原创。整理了一下大学期间2012年&#xff5e;2016年发布在QQ空间&#xff0c;自己感觉写得还行的七首“诗词”。回答知乎问题&#xff1a;你写过什么自认为惊艳的诗&#xff1f;中国古诗词博大精深。小时候…

lighttpd安装配置支持php

转载链接&#xff1a;https://wiki.freebsdchina.org/howto/n/php_fastcgi_lighttpd 安装lighttpd 记得在SPAWNFCGI前打勾 [X] SPAWNFCGI Depend on spawn-fcgi utility #cd /usr/ports/www/lighttpd #make config #make install clean 安装php 模块自己看自己需要 #cd /usr/p…

密码可逆不可逆选择_膝关节损伤不可逆!跑步要注意!

膝盖同时也是运动者最常受伤的关节。根据美国运动医学整型外科协会的报告&#xff0c;美国每年约有三百万人拉伤、挫伤、或扭伤他们的膝部&#xff0c;其中约有一半是因为运动引起的。而对于跑者而言&#xff0c;影响最大的就是我们的膝关节。换言之&#xff0c;长跑的潜在危害…

MS CRM 2011 C#中获取Web Resource

原创地址&#xff1a;http://www.cnblogs.com/jfzhu/archive/2013/02/15/2913077.html 转载请注明出处 我在以前的文章中讲过如何用JScript读取web resource资源&#xff0c;我在本文中将要讲解如何在C#中获取web resource资源。 有时候可能有这样的需求&#xff0c;你需要在一…

测试驱动开发

测试驱动开发: 测试驱动开发&#xff08;Test Driven Development,英文缩写TDD&#xff09;是极限编程的一个重要组成部分&#xff0c;它的基本思想就是在开发功能代码之前&#xff0c;先编写测试代码。也就是说在明确要开发某个功能后&#xff0c;首先思考如何对这个功能进行测…

面试官问:能否模拟实现JS的call和apply方法

写于2018年11月30日&#xff0c;发布在掘金上阅读量近一万&#xff0c;现在发布到微信公众号申明原创。相对比较基础的知识&#xff0c;虽然日常开发可能用得比较少&#xff0c;各种源码中有很多call和apply&#xff0c;需要掌握。前言这是面试官问系列的第三篇&#xff0c;旨在…

HTML中小meta的大作用

转载链接&#xff1a;http://www.pconline.com.cn/pcedu/sj/wz/html/0401/293106.html meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的<head>与</head>中&#xff0c;meta 标签的用处很多。meta 的属性有两种&#xff1a;name和http-equiv。…

prometheus 发送恢复 值_Prometheus基础知识介绍

【编者的话】本文会让你了解Prometheus是什么&#xff0c;并让你理解它在监控领域的适用场景。Prometheus起源很久以前&#xff0c;加利福尼亚州山景城有一家名为Google的公司。他们推出了大量产品&#xff0c;其中最著名的是广告系统和搜索引擎平台。为了运行这些不同的产品&a…

FAT32格式和NTFS有什么区别

FAT32与NTFS的区别在推出FAT32文件系统之前&#xff0c;通常PC机使用的文件系统是FAT16。像基于MS-DOS&#xff0c;Win 95等系统都采用了FAT16文件系统。在Win 9X下&#xff0c;FAT16支持的分区最大为2GB。我们知道计算机将信息保存在硬盘上称为“簇”的区域内。使用的簇越小&a…

修复系统COM+

有的时候由于安装COM&#xff0b;过程中出错&#xff0c;可能会造成不能再次展开COM&#xff0b;浏览器的〔我的电脑〕。解决办法&#xff1a;1 删除注册表键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM32 运行appwiz.cpl&#xff0c;打开系统的[添加\删除]窗体&#xff0c;点击…

面试官问:JS的this指向

写于2018年12月25日&#xff0c;发布在掘金上阅读量近一万&#xff0c;现在发布到微信公众号申明原创。前言这是面试官问系列的第四篇&#xff0c;旨在帮助读者提升JS基础知识&#xff0c;包含new、call、apply、this、继承相关知识。面试官问系列文章如下&#xff1a;感兴趣的…

CSS实现div悬浮框的代码(兼容IE6)

转载链接&#xff1a;http://hi.baidu.com/grayworm/item/b735c2061f4e33ea34990265 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://ww…

python数组替换_Python:替换数组中的值

我会按照以下思路做些事情&#xff1a;import numpy as npdef fill(arr, fwd_fill):out arr.copy()if fwd_fill:start, end, step 0, len(out), 1else:start, end, step len(out)-1, -1, -1cur out[start]for i in range(start, end, step):if np.isnan(out[i]):out[i] cu…

(原創) 如何在Ubuntu設定P7010的1280 x 768解析度? (OS) (Linux) (Ubuntu) (NB) (P7010)

AbstractFujitsu P7010唯一較特別的硬體規格就是1280 x 768的解析度&#xff0c;無論任何Linux distribution預設都只能抓到1024 x 768&#xff0c;該如何才能抓到最佳的1280 x 768呢?IntroductionP7010非常適合Linux&#xff0c;但唯一的遺憾就是1280 x 768解析度不被支援&am…

python的常量和变量_python变量和常量

变量什么是变量&#xff1f;变量&#xff0c;是用于在内存中存放程序数据的容器计算机的最核心功能就是“计算”&#xff0c; 计算需要数据源&#xff0c;数据源要存在内存里&#xff0c;比如我要把小明的姓名、身高、年龄信息存下来&#xff0c;后面程序会调用。怎样定义一个变…