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.pswp.cn/news/276481.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276481.shtml
英文地址,請注明出處:http://en.pswp.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;后面程序會調用。怎樣定義一個變…