Как программно загрузить файлы из библиотеки документов sharepoint - PullRequest
5 голосов
/ 07 июля 2011

При событии нажатия кнопки или при нажатии кнопки «Ссылка» я хочу загрузить документ из библиотеки документов sharepoint и сохранить его на локальном диске пользователя.

Пожалуйста, помогите мне в этом, если у вас есть пример кода, пожалуйста, поделитесь

Ответы [ 2 ]

4 голосов
/ 07 июля 2011

Проблема с выводом прямой ссылки на файл заключается в том, что для некоторых типов контента он может просто открываться в окне браузера. Если это нежелательный результат, и вы хотите вызвать диалоговое окно сохранения файла, вам нужно написать страницу ASP / PHP, которой вы могли бы передать имя файла через строку запроса. Затем эта страница может прочитать файл и установить заголовки в ответе, чтобы указать, что расположение содержимого - это и вложение.

Для ASP.net, если вы создаете простую страницу aspx с именем download.aspx, добавьте в нее следующий код, а затем поместите этот файл на сервер, где вы можете загрузить файлы, вызвав эту страницу следующим образом:

http://yourserveraddress/download.aspx?path=http://yoursharepointserver/pathtodoclibrary/file.ext

protected void Page_Load(object sender, EventArgs e)
    {
        string path = "";
        string fileName = "";

        path = Request.QueryString["path"];
        if (path != null && path.Length > 0)
        {
            int lastIndex = path.LastIndexOf("/");
            fileName = path.Substring(lastIndex + 1, (path.Length - lastIndex - 1));

            byte[] data;
            data = GetDataFromURL(path);

            Response.Clear();
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
            Response.BinaryWrite(data);
            Response.Flush();
        }
    }


    protected byte[] GetDataFromURL(string url)
    {
        WebRequest request = WebRequest.Create(url);
        byte[] result;
        byte[] buffer = new byte[4096];

        //uncomment this line if you need to be authenticated to get to the files on SP
        //request.Credentials = new NetworkCredential("username", "password", "domain");

        using (WebResponse response = request.GetResponse())
        {
            using (Stream responseStream = response.GetResponseStream())
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    int count = 0;
                    do
                    {
                        count = responseStream.Read(buffer, 0, buffer.Length);
                        ms.Write(buffer, 0, count);
                    } while (count != 0);
                    result = ms.ToArray();
                }
            }
        }
        return result;
    }
0 голосов
/ 07 июля 2011

Я бы создал LinkButton и программно установил URL-адрес URL документа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...