Я пытаюсь загрузить файл из HTML-формы в виде вложения элемента списка в список SharePoint 2013.Как загрузить вложение в блочном виде в SharePoint с помощью REST API с помощью AngularJS?
Теперь я могу загрузить каждый файл, но файлы .txt не повреждены, поэтому тогда можно открыть только файлы .txt.
Когда пользователь представит свою форму, у меня есть объект со следующими свойствами:
Затем в коде, я это читать этот блоб данные:
var fileData = null;
// Get a content from url with blob: .......
$http.get(fileInfo.url, {
headers: {
"Accept": "application/xml;odata=verbose",
"X-Requested-With": "XMLHttpRequest",
}
}).then(function (data) {
fileData = data.data;
// Upload a file
$http.post(siteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items(" + itemId + ")/AttachmentFiles/add(FileName='" + fileInfo.name + "')", fileData, {
headers: {
"Accept": "application/json;odata=verbose",
"X-Requested-With": "XMLHttpRequest",
"X-RequestDigest": document.getElementById('__REQUESTDIGEST').value
}
}).then(function (data) {
console.log("OK");
successFunction(data);
}, function (data) {
console.log("NOT OK");
errorFunction(data);
});
}, function (data) {
alert("Error");
});
И, вероятно, это место в чем проблема. Когда пользователь загружает файл .txt, переменная fileData представляет собой строку с точно такой же, как в этом .txt-файле. Но если пользователь загружает файл .docx (MS Word), строка в переменной fileData выглядит примерно так (только начало):
PK! ߤ lZ [Content_Types] .xml ( n 0E Ub 袪 * > -R {V Ǽ QU ↵l "% 3 3Vƃ ښ l w% = ^i7 + -d & 0 A 6 l4 L60 # Ò S↵O X * V $ z 3 3 % p) O^
Так что, возможно, кодирующий Плохая спецификация типа данных? Я не знаю.
Я буду очень благодарен за помощь. спасибо много советов.
MimeType из .docx файлов 'приложение/vnd.openxmlformats-officedocument.wordprocessingml.document' – briosheje
Чтобы получить двоичные файлы, используйте 'responseType:" blob "или' responseType: "arraybuffer'. Для получения дополнительной информации см. [Справочник по API-интерфейсу MDN - responseType] (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType). – georgeawg