none
Как загрузить файл в библиотеку SharePoint при помощи JavaScript / JQuery? RRS feed

  • Вопрос

  • Добрый день.

    Есть SharePoint 2016 с библиотекой документов "itdocs" находящейся (к примеру) по адресу:
    http://myserver/ct/itdocs

    Как мне при помощи JQuery (или JavaScript) загрузить в эту библиотеку какой-нибудь документ Word или Excel?
    Диалог выбора файла, допустим, я сделаю из HTML страницы, а как дальше - не знаю.

    4 июля 2017 г. 11:56

Ответы

  • Готовое решение от Александра Ульмаскулова:

    SharePoint custom file uploader by JSOM & REST\oData

    4 июля 2017 г. 15:27
  • Добрый день

    вот готовая рабочая функция для загрузки уже как функция requere.js

    на выходе имеем промис который знает, что происходит с загрузкой

    вдобавок происходит проверка название файла на наличие запрещенных символов и заменяет их

    'use strict';
    define(['jquery'], function(jQuery){ 
        return function uploadFileToDocLib(libTitle, file, body, filePath)
        {
           var upFile = jQuery.Deferred();
           if(libTitle){
                var fileName = checkFileName(file.name);        
                var serReleturl = _spPageContextInfo.webServerRelativeUrl + libTitle;
                if(filePath){
                    serReleturl = filePath;
                };
                var  webUrl =  _spPageContextInfo.webAbsoluteUrl;
                var fileCollectionEndpoint = webUrl + "/_api/web/getfolderbyserverrelativeurl('" + serReleturl + "')/files/add(overwrite=true, url='" + fileName + "')";                       
               
                upFile = jQuery.ajax({
                    url: fileCollectionEndpoint,
                    type: "POST",
                    data: body,
                    processData: false,
                    headers: {
                        "accept": "application/json;odata=verbose",
                        "X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),
                        //"content-length": body.byteLength
                    }
                });
           }else{
              // upFile.re
           }
            
            // upFile.done(function (data) { dfr.resolve(data); });
            upFile.fail(function (e) {console.log('Ошибка при отправке документа'); console.log(e) });        
            // проверка и изменение название файла
            function checkFileName(fileName) {
                var regExp = /[~/#%&*{}\:<>+?"|]/g;
                var name = fileName.replace(regExp, "_").replace(/\.{2,}/g, ".");
                return name;
            };
            return upFile;
        }
    });


    мой блог не много о SharePoint



    6 июля 2017 г. 12:55
    Модератор

Все ответы

  • Готовое решение от Александра Ульмаскулова:

    SharePoint custom file uploader by JSOM & REST\oData

    4 июля 2017 г. 15:27
  • Я так понимаю, что это решение вызывается из самого SahrePoint

    Мне же надо, чтобы с любого компа в домене я бы запустил html-файл (или фрагмент), где подключается JS-файл, и выбрав офисный документ вложить его в библиотеку шарика.

    Нашел решение вот здесь но оно какое то не очень рабочее.
    • Изменено VARD32 5 июля 2017 г. 4:25
  • Добрый день

    вот готовая рабочая функция для загрузки уже как функция requere.js

    на выходе имеем промис который знает, что происходит с загрузкой

    вдобавок происходит проверка название файла на наличие запрещенных символов и заменяет их

    'use strict';
    define(['jquery'], function(jQuery){ 
        return function uploadFileToDocLib(libTitle, file, body, filePath)
        {
           var upFile = jQuery.Deferred();
           if(libTitle){
                var fileName = checkFileName(file.name);        
                var serReleturl = _spPageContextInfo.webServerRelativeUrl + libTitle;
                if(filePath){
                    serReleturl = filePath;
                };
                var  webUrl =  _spPageContextInfo.webAbsoluteUrl;
                var fileCollectionEndpoint = webUrl + "/_api/web/getfolderbyserverrelativeurl('" + serReleturl + "')/files/add(overwrite=true, url='" + fileName + "')";                       
               
                upFile = jQuery.ajax({
                    url: fileCollectionEndpoint,
                    type: "POST",
                    data: body,
                    processData: false,
                    headers: {
                        "accept": "application/json;odata=verbose",
                        "X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),
                        //"content-length": body.byteLength
                    }
                });
           }else{
              // upFile.re
           }
            
            // upFile.done(function (data) { dfr.resolve(data); });
            upFile.fail(function (e) {console.log('Ошибка при отправке документа'); console.log(e) });        
            // проверка и изменение название файла
            function checkFileName(fileName) {
                var regExp = /[~/#%&*{}\:<>+?"|]/g;
                var name = fileName.replace(regExp, "_").replace(/\.{2,}/g, ".");
                return name;
            };
            return upFile;
        }
    });


    мой блог не много о SharePoint



    6 июля 2017 г. 12:55
    Модератор