現在、SharePoint 2013で標記の処理を実装しようとしています。
作成済みのライブラリにフォルダーを作成、そのフォルダーにファイルをアップロードするという処理で以下のように実装を進めていますが、リストアイテムを更新できない旨のエラーが発生してしまいます。
フォルダーは作成できているのですが、completeの処理まで到達せずエラーを吐いてしまい、どこが根本原因か不明な状態です。
有識者の皆さまのお力をお借りしたく、投稿させていただきます。
よろしくお願い致します。
以下、コード抜粋とエラーメッセージです。
C#
1 var CurrentCtx = SP.ClientContext.get_current(); 2 3 var List = CurrentCtx.get_web().get_lists().getById(parent._spPageContextInfo.pageListId); 4 CurrentCtx.load(List, "Id"); 5 CurrentCtx.executeQueryAsync(Function.createDelegate(this, OnLibQuerySucceeded), Function.createDelegate(this, OnLibQueryFailed)); 6 7 function OnLibQuerySucceeded() { 8 var ListId = List.get_id().toString(); 9 var SiteRelativeUrlToFolder = 'temporaryLib_' + ListId.replace(/-/g, ''); 10 var FolderName = $('#txtFolderName').val(); 11 12 var FolderCollectionEndpoint = String.format("{0}/_api/web/folders/add('{1}/{2}')", _spPageContextInfo.webAbsoluteUrl, SiteRelativeUrlToFolder, FolderName); 13 14 $.ajax({ 15 url: FolderCollectionEndpoint, 16 type: "POST", 17 headers: { 18 "X-RequestDigest": $("#__REQUESTDIGEST").val(), 19 "content-type": "application/json;odata=verbose" 20 }, 21 error: function (XMLHttpRequest, TextStatus, ErrorThrown) { 22 alert("XMLHttpRequest : " + XMLHttpRequest.status + ", textStatus : " + TextStatus + ", errorTrown : " + ErrorThrown.message); 23 }, 24 complete: function () { 25 for (var i = 0; i < FileArray.length; i++) { 26 var GetFile = GetFileBuffer(File); 27 GetFile.done(function (DataArray) { 28 var AddFile = AddFileToFolder(DataArray); 29 AddFile.done(function (file, status, xhr) { 30 var NewFileUpload = $('#fileInput')[0].outerHTML.replace('id="fileInput"', 'id="fileInputNew"'); 31 $('#fileInput').after(NewFileUpload); 32 $('#fileInput').remove(); 33 $('#fileInputNew').attr('id', 'fileInput'); 34 }); 35 AddFile.fail(onError); 36 }); 37 GetFile.fail(onError); 38 } 39 } 40 }); 41 42function GetFileBuffer(File) { 43 var Deferred = $.Deferred(); 44 var Reader = new FileReader(); 45 Reader.onloadend = function (e) { 46 Deferred.resolve(e.target.result); 47 }; 48 Reader.onerror = function (e) { 49 Deferred.reject(e.target.error); 50 }; 51 Reader.readAsArrayBuffer(File); 52 return Deferred.promise(); 53 } 54 55 function AddFileToFolder(DataArray) { 56 var FileCollectionEndpoint = String.format("{0}/_api/web/getfolderbyserverrelativeurl('{1}/{2}')/files/add(overwrite=true, url='{3}')", _spPageContextInfo.webAbsoluteUrl, SiteRelativeUrlToFolder, FolderName, File.name); 57 58 return $.ajax({ 59 url: FileCollectionEndpoint, 60 type: "POST", 61 data: DataArray, 62 processData: false, 63 headers: { 64 "accept": "application/json;odata=verbose", 65 "X-RequestDigest": $("#__REQUESTDIGEST").val(), 66 "content-length": DataArray.byteLength 67 } 68 }); 69 }
---エラーメッセージ
'/' アプリケーションでサーバー エラーが発生しました。
<nativehr>0x80070057</nativehr><nativestack></nativestack>リスト アイテムの更新に無効なデータが使われています。更新しようとしているフィールドは読み取り専用の可能性があります。
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。
例外の詳細: System.ArgumentException: <nativehr>0x80070057</nativehr><nativestack></nativestack>リスト アイテムの更新に無効なデータが使われています。更新しようとしているフィールドは読み取り専用の可能性があります。
ソース エラー:
現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。
スタック トレース:
[ArgumentException: <nativehr>0x80070057</nativehr><nativestack></nativestack>リスト アイテムの更新に無効なデータが使われています。更新しようとしているフィールドは読み取り専用の可能性があります。]
Microsoft.SharePoint.Library.SPRequestInternalClass.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bPreserveItemUIVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bUnRestrictedUpdateInProgress, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback) +0
Microsoft.SharePoint.Library.SPRequest.AddOrUpdateItem(String bstrUrl, String bstrListName, Boolean bAdd, Boolean bSystemUpdate, Boolean bPreserveItemVersion, Boolean bPreserveItemUIVersion, Boolean bUpdateNoVersion, Int32& plID, String& pbstrGuid, Guid pbstrNewDocId, Boolean bHasNewDocId, String bstrVersion, Object& pvarAttachmentNames, Object& pvarAttachmentContents, Object& pvarProperties, Boolean bCheckOut, Boolean bCheckin, Boolean bUnRestrictedUpdateInProgress, Boolean bMigration, Boolean bPublish, String bstrFileName, ISP2DSafeArrayWriter pListDataValidationCallback, ISP2DSafeArrayWriter pRestrictInsertCallback, ISP2DSafeArrayWriter pUniqueFieldCallback) +10051
Microsoft.SharePoint.SPListItem.AddOrUpdateItem(Boolean bAdd, Boolean bSystem, Boolean bPreserveItemVersion, Boolean bNoVersion, Boolean bMigration, Boolean bPublish, Boolean bCheckOut, Boolean bCheckin, Guid newGuidOnAdd, Int32& ulID, Object& objAttachmentNames, Object& objAttachmentContents, Boolean suppressAfterEvents, String filename, Boolean bPreserveItemUIVersion) +2046
Microsoft.SharePoint.SPListItem.UpdateInternal(Boolean bSystem, Boolean bPreserveItemVersion, Guid newGuidOnAdd, Boolean bMigration, Boolean bPublish, Boolean bNoVersion, Boolean bCheckOut, Boolean bCheckin, Boolean suppressAfterEvents, String filename, Boolean bPreserveItemUIVersion) +683
Microsoft.SharePoint.SPListItem.Update() +141
Microsoft.SharePoint.WebControls.SaveButton.SaveItem(SPContext itemContext, Boolean uploadMode, String checkInComment) +724
Microsoft.SharePoint.WebControls.SaveButton.OnBubbleEvent(Object source, EventArgs e) +863
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6016
バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.6.1055.0

あなたの回答
tips
プレビュー