Лучший отвечающий
Как загрузить файл в библиотеку SharePoint при помощи JavaScript / JQuery?

Вопрос
-
Добрый день.
Есть SharePoint 2016 с библиотекой документов "itdocs" находящейся (к примеру) по адресу:
http://myserver/ct/itdocsКак мне при помощи JQuery (или JavaScript) загрузить в эту библиотеку какой-нибудь документ Word или Excel?
Диалог выбора файла, допустим, я сделаю из HTML страницы, а как дальше - не знаю.4 июля 2017 г. 11:56
Ответы
-
Готовое решение от Александра Ульмаскулова:
- Изменено Mikhail Zhuikov 4 июля 2017 г. 15:28
- Предложено в качестве ответа Mikhail Zhuikov 11 июля 2017 г. 8:00
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 1 августа 2017 г. 5:25
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
- Изменено Kaplin VladimirModerator 6 июля 2017 г. 13:08
- Предложено в качестве ответа Mikhail Zhuikov 11 июля 2017 г. 8:00
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 1 августа 2017 г. 5:25
6 июля 2017 г. 12:55Модератор
Все ответы
-
Готовое решение от Александра Ульмаскулова:
- Изменено Mikhail Zhuikov 4 июля 2017 г. 15:28
- Предложено в качестве ответа Mikhail Zhuikov 11 июля 2017 г. 8:00
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 1 августа 2017 г. 5:25
4 июля 2017 г. 15:27 -
Я так понимаю, что это решение вызывается из самого SahrePoint
Мне же надо, чтобы с любого компа в домене я бы запустил html-файл (или фрагмент), где подключается JS-файл, и выбрав офисный документ вложить его в библиотеку шарика.
Нашел решение вот здесь но оно какое то не очень рабочее.- Изменено VARD32 5 июля 2017 г. 4:25
5 июля 2017 г. 4:24 -
Добрый день
вот готовая рабочая функция для загрузки уже как функция 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
- Изменено Kaplin VladimirModerator 6 июля 2017 г. 13:08
- Предложено в качестве ответа Mikhail Zhuikov 11 июля 2017 г. 8:00
- Помечено в качестве ответа Иван ПродановMicrosoft contingent staff, Moderator 1 августа 2017 г. 5:25
6 июля 2017 г. 12:55Модератор