SP.RequestExecutor ではなく、ネイティブ JavaScript/jQuery を使用して画像を SharePoint にアップロードしようとしています。
私は認証の問題を見事に簡単に解決したので、バイナリ ファイルをアップロードする方法を理解するだけです。ファイルにプレーンテキストを入れると、問題なくアップロードされますが、問題が発生しているのは単なるバイナリデータです。
これまでの私のコードは以下に含まれています。getToken()
それは事であり、使用する有効なダイジェスト オブジェクトを私に残します。*
また、ドキュメント ライブラリ名を'sで空白にしたことにも注意してください。
function PerformUpload(fileName, fileData) {
getToken();
$.ajax({
url: siteFullUrl +
"/_api/web/GetFolderByServerRelativeUrl('/*****/')/Files" +
"/Add(url='" + fileName + "', overwrite=true)",
type: "POST",
async: false,
data: fileData,
processData: false,
contentType: "application/json;odata=verbose",
headers: {
"Accept": "application/json;odata=verbose",
"X-RequestDigest": digest
},
success: function (data) {
alert("Success");
},
error: function (err) {
alert("Error: \r\n" + JSON.stringify(err));
}
});
}
contentType
、設定のさまざまな値の組み合わせを多数試しましbinaryStringRequestBody: true
たが、画像が SharePoint に入ったときにまだ破損しています。
ファイルをバイナリに解析する現時点での私のコードは
var reader = new FileReader();
reader.onload = function (result) {
var fileName = '',
libraryName = '',
fileData = '';
var byteArray = new Uint8Array(result.target.result)
for (var i = 0; i < byteArray.byteLength; i++) {
fileData += String.fromCharCode(byteArray[i])
}
PerformUpload("image.jpg", fileData);
};
reader.readAsArrayBuffer(fileInput);
ファイルが SharePoint にアップロードされていますが、表示またはダウンロードしようとするとファイルが破損しています。
バイナリ ファイルを SharePoint にアップロードする正しい方法について、誰かがガイダンスを提供できますか? (ajax呼び出しで)data: fileData,
ファイルdata: "A simple string",
のアップロードに置き換え、ダウンロードするとファイルの内容はA simple string
.