• 通过webService下载sharepoint文档库文件


    第一、基本原理:

    1.通过对象模型得到SPItem.File得到文档库文件

    2.通过WebService将item.File.OpenBinary()返回

    3.将文件保存到服务器

    4.从服务器下载到本地

    第二、具体代码:

    WebService

    [WebMethod]
        public byte[]  GetAttachmentFileflow(string webPath,string list,int fileId) 
        {
            try
            {
                using (SPSite site = new SPSite(webPath))
                {
                    SPWeb web = site.OpenWeb();
                    SPList lists = web.Lists[list];
                    SPListItem item = lists.Items.GetItemById(fileId);
                    return item.File.OpenBinary();
                }
    
            }
            catch (Exception)
            {
                return new byte[] { };
            }
            
        }
    

    保存到服务器,下载的本地

    protected void Page_Load(object sender, EventArgs e)
        {
            File.Delete(path);
            string webPath = "http://18:8099/";
            string list = "Shared Documents";
            localhost.Service server = new localhost.Service();
            byte[] b = server.GetAttachmentFileflow(webPath, list, 1594);//1594为文件ID通过SQL取得
            File.WriteAllBytes(path, b);
        }
    
        protected void BtnClick(object sender, EventArgs e)
        {
            FileStream fileStrem = new FileStream(path, FileMode.Open);
            long fileSize = fileStrem.Length;
            Context.Response.ContentType = "application/octet-stream";//设置报文
            Context.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("下载.docx", Encoding.UTF8));//下载文件名需要更改
            Context.Response.AddHeader("Content-Length", fileSize.ToString());
            byte[] fileBuffer = new byte[fileSize];
            fileStrem.Read(fileBuffer, 0, (int)fileSize);
            Context.Response.BinaryWrite(fileBuffer);
            fileStrem.Dispose();//释放资源
            Context.Response.End();
        }
    

    第三、源码:

    环境:vs2005 ,sp2007

    注:服务器端对象模型

    http://app.yinxiang.com/l/AAwg2HN1vt9HW78Q29c5fzexeu1Z-DbJh3c/

  • 相关阅读:
    MySQL数据库备份与还原
    MySQL的增、删、改、查
    MySQL与安全
    网址收集
    实现批量添加10个用户,用户名为user01-10,密码为user后面跟3个随机字符
    运维笔试Python编程题
    javascript 正则表达式 详细入门教程
    Web UI回归测试 -- BackstopJS 入门
    js 链接传入中文参数乱码解决
    项目搭建注意事项
  • 原文地址:https://www.cnblogs.com/yixiaozi/p/4000243.html
Copyright © 2020-2023  润新知