页面源码:
![]()
Code
1
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FileUpload.ascx.cs" Inherits="UploadFile.FileUpload" %>
2
<table>
3
<tr>
4
<td style="width:138px; height: 24px;">
5
请选择列表:
6
</td>
7
<td style="width:133px; height: 24px;">
8
<asp:DropDownList ID="ddlListName" runat="server" OnSelectedIndexChanged="ListTileNameDrp_SelectedIndexChanged" Width="122px" AutoPostBack="true">
9
</asp:DropDownList>
10
</td>
11
</tr>
12
<tr>
13
<td style="width: 138px">
14
请选择文件夹:</td>
15
<td style="width: 133px">
16
<asp:DropDownList ID="ddlFolderName" runat="server" Width="122px">
17
</asp:DropDownList></td>
18
</tr>
19
<tr>
20
<td style="width: 138px">
21
部门:</td>
22
<td style="width: 133px">
23
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
24
</tr>
25
<tr>
26
<td colspan="2">
27
<asp:FileUpload ID="FileUpload1" runat="server" Width="250px" /></td>
28
</tr>
29
<tr>
30
<td colspan="2" style="text-align: right">
31
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上载" Width="51px" /></td>
32
</tr>
33
</table>
34![]()
控件代码:
![]()
Code
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Collections;
5
using System.Web;
6
using System.Web.Security;
7
using System.Web.UI;
8
using System.Web.UI.WebControls;
9
using System.Web.UI.WebControls.WebParts;
10
using System.Web.UI.HtmlControls;
11
using Microsoft.SharePoint;
12
using System.IO;
13![]()
14
namespace UploadFile
15![]()
![]()
{
16
public partial class FileUpload : System.Web.UI.UserControl
17![]()
{
18
protected void Page_Load(object sender, EventArgs e)
19![]()
{
20
if(!IsPostBack)
21![]()
{
22
BindListName();
23
}
24
}
25
//绑定列表库
26
public void BindListName()
27![]()
{
28
SPSite site = new SPSite("http://foxconn-shentan/");
29
SPWeb myWeb =site.AllWebs["Docs"];
30
SPListCollection collList = myWeb.Lists;
31
ddlListName.Items.Clear();
32
foreach(SPList myList in collList)
33![]()
{
34
ddlListName.Items.Add(new ListItem(myList.Title));
35
}
36
}
37
//列表库选择项改变时,级联绑定列表库下的文件库
38
protected void ListTileNameDrp_SelectedIndexChanged(object sender, EventArgs e)
39![]()
{
40
SPSite site = new SPSite("http://foxconn-shentan/");
41
SPWeb myWeb = site.AllWebs["Docs"];
42
SPList myList=myWeb.Lists[ddlListName.SelectedValue];
43
ddlFolderName.Items.Clear();
44
ddlFolderName.Items.Add("根目录");
45
foreach (SPListItem myFolder in myList.Folders)
46![]()
{
47
ddlFolderName.Items.Add(new ListItem(myFolder.Name));
48
}
49
}
50
//弹出消息框
51
private void ShowMessage(string txtMsg)
52![]()
{
53
Literal msg = new Literal();
54
msg.Text = "<script>alert('"+txtMsg+"')</script>";
55
Page.Controls.Add(msg);
56
}
57
//给个用户添加权限
58
public void AddedPermission(SPWeb spWeb,SPList spList,string fileName)
59![]()
{
60
SPListItem listItem = null;
61
//遍历列表下的所有记录
62
foreach(SPListItem item in spList.Items)
63![]()
{
64
//哪一条记录的"名称"字段与上传的文档名称一致
65
if(item["名称"].ToString()==fileName)
66![]()
{
67
listItem = spList.GetItemById(item.ID);
68
break;
69
}
70
}
71
//断开原来列表项所继承的权限,使其可以设置独立权限
72
listItem.BreakRoleInheritance(true);
73
//将原来所继承的权限通通移除
74
foreach(SPRoleAssignment roleAssignment in listItem.RoleAssignments)
75![]()
{
76
roleAssignment.RoleDefinitionBindings.RemoveAll();
77
spWeb.AllowUnsafeUpdates = true;
78
roleAssignment.Update();
79
listItem.Update();
80
}
81
//获取将要设置权限的用户
82
SPUser myUser = SPContext.Current.Site.RootWeb.AllUsers["SHEN\\a"];
83
//定义权限分配
84
SPRoleAssignment myRoleAssignment = new SPRoleAssignment(myUser.LoginName,myUser.Email,myUser.Name,myUser.Notes);
85
//绑定设置的权限
86
myRoleAssignment.RoleDefinitionBindings.Add(spWeb.RoleDefinitions.GetByType(SPRoleType.Reader));
87
//把这个权限加到我们的列表中
88
listItem.RoleAssignments.Add(myRoleAssignment);
89
listItem.Update();
90
}
91
//上载文档的方法
92
public void UploadFile(string srcUrl,string destUrl,string fileName)
93![]()
{
94
//特权提升,以管理员身份运行下列代码段
95
SPSecurity.RunWithElevatedPrivileges(delegate()
96![]()
{
97
using (SPWeb myWeb=new SPSite(destUrl).OpenWeb())
98![]()
{
99
myWeb.AllowUnsafeUpdates = true;
100
if(!File.Exists(srcUrl))
101![]()
{
102
throw new ArgumentException(String.Format("{0} does not exist",srcUrl),"srcUrl");
103
}
104
SPList list = myWeb.Lists["文档"];
105
FileStream fStream = File.OpenRead(srcUrl);
106
byte[] contents=new byte[fStream.Length];
107
fStream.Read(contents,0,(int)fStream.Length);
108
fStream.Close();
109
//将文件加入到列表中
110
if (ddlFolderName.SelectedValue == "根目录")
111![]()
{
112
SPFile file=list.RootFolder.Files.Add(fileName, contents);
113
SPListItem item = file.Item;
114
string bumeng = TextBox1.Text.ToString();
115
item["部门"] = bumeng;
116
item.Update();
117
}
118
else
119![]()
{
120
Guid id = Guid.Empty;
121
foreach(SPListItem subFolder in list.Folders)
122![]()
{
123
if(subFolder.Name==ddlFolderName.SelectedValue)
124![]()
{
125
id = subFolder.UniqueId;
126
break;
127
}
128
}
129
SPFolder myFolder = myWeb.GetFolder(id);
130
SPFile file= myFolder.Files.Add(fileName,contents);
131
SPListItem item = file.Item;
132
string bumeng = TextBox1.Text.ToString();
133
item["部门"]= bumeng;
134
item.Update();
135
136
}
137
//设置列表权限的
138
AddedPermission(myWeb,list,fileName);
139
}
140
});
141
}
142
protected void Button1_Click(object sender, EventArgs e)
143![]()
{
144
if(FileUpload1.FileName ==string.Empty)
145![]()
{
146
ShowMessage("请上传您要上传的文件");
147
return;
148
}
149
string fileName = FileUpload1.FileName;
150
string filePath = FileUpload1.PostedFile.FileName;
151
string fileType = fileName.Substring(fileName.LastIndexOf('.') + 1, 3).ToLower();
152
if (fileType != "doc" && fileType != "docx")
153![]()
{
154
ShowMessage("您上传的文件类型不正确,请重选上传的文件");
155
return;
156
}
157
else
158![]()
{
159
UploadFile(filePath, "http://foxconn-shentan/Docs/Documents/", fileName);
160
ShowMessage("上传成功");
161
}
162
}
163
}
164
}
posted @
2009-06-24 18:00
小生不才
阅读(
154)
评论()
收藏
举报