如何修复未捕获的(承诺中)TypeError:无法在“ FileReader”上执行“ readAsArrayBuffer”:参数1的类型不是“ Blob”

时间:2019-05-20 16:16:54

标签: javascript ajax sharepoint pptxgenjs

我正在尝试将使用$results = TableRegistry::getTableLocator()->get('item_orders') ->find('list') ->where(['order_id' => $id]); debug($results->toArray()); $this->set('orders', $results); debug($orders); exit; <-- test results, and post in your question. 库生成的.pptx文件保存到SharePoint文件夹。我已经将所需的Blob生成到控制台中,但是生成后无法将其保存到文件夹中。

该脚本在click事件上运行。我只介绍最后一点,因为问题就在那里。我只是不知道该怎么解决。

pptxgenjs

var targetUrl = webUrl + "/" + documentLibrary + "/" + folderName; var FullUrl = webUrl + "/_api/Web/GetFolderByServerRelativeUrl(@target)/Files/add(overwrite=true, url='" + fileName + "')?$expand=ListItemAllFields&amp;amp;@target='" + targetUrl + "'"; function getFileBuffer(uploadFile) { var deferred = jQuery.Deferred(); var reader = new FileReader(); reader.onloadend = function (e) { deferred.resolve(e.target.result); } reader.onerror = function (e) { deferred.reject(e.target.error); } reader.readAsArrayBuffer(uploadFile); return deferred.promise(); } function uploadFileToFolder(fileObj, url, success, failure) { var apiUrl = FullUrl; var getFile = getFileBuffer(fileObj); getFile.done(function (arrayBuffer) { $.ajax({ url: apiUrl, type: "POST", data: arrayBuffer, processData: false, async: false, headers: { "accept": "application/json;odata=verbose", "X-RequestDigest": jQuery("#__REQUESTDIGEST").val(), }, success: function (data) { console.log(data); //success(data); }, error: function (data) { console.log(data); //failure(data); } }); }); } pptx.save('jszip', function(file1) { var newblob = file1; getFileBuffer(newblob); }, 'blob'); 应该生成并保存到提供的URL。我不希望用户下载.pptx文件或执行其他任何操作。目前,我获得了pptx文件可以正常工作的下载窗口,但是在控制台中,出现以下错误: 未捕获(承诺)TypeError:无法在“ FileReader”上执行“ readAsArrayBuffer”:参数1的类型不是“ Blob”。

任何帮助将不胜感激!

0 个答案:

没有答案