Javascript 获取错误:通过LWC js中的adobe api发送文件时,输入文件似乎已损坏,无法处理
我在通过FetchAPI将文件发送到adobe时收到错误响应。 我得到的错误如下:Javascript 获取错误:通过LWC js中的adobe api发送文件时,输入文件似乎已损坏,无法处理,javascript,fetch,adobe,multipartform-data,lwc,Javascript,Fetch,Adobe,Multipartform Data,Lwc,我在通过FetchAPI将文件发送到adobe时收到错误响应。 我得到的错误如下: {"cpf:inputs":{"documentIn":{"cpf:location":"InputFile0","dc:format":"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}},&qu
{"cpf:inputs":{"documentIn":{"cpf:location":"InputFile0","dc:format":"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}},"cpf:engine":{"repo:assetId":"urn:aaid:cpf:Service-1538ece812254acaac2a07799503a430"},"cpf:status":{"completed":true,"type":"","title":"For application/vnd.openxmlformats-officedocument.wordprocessingml.document mime-type The input file appears to be corrupted and cannot be processed.; transactionId=rg2xvsgT0KgnTk4L0cGR7PWMK20RVt5P","status":400,"report":"{\"error_code\":\"CORRUPT_DOCUMENT\"}"}}
我的代码是:
这里fileData基本上是文件的base64,在传递给方法之前,我已经通过解码检查了base64
adobeApiHIT(fileData, docMimeType) {
try{
let authToken = 'Bearer ' + this.accessToken;
const blob = this.b64toBlob(fileData, docMimeType);
var formdata = new FormData();
formdata.append("contentAnalyzerRequests", "{\n \"cpf:inputs\": {\n \"documentIn\": {\n \"cpf:location\": \"InputFile0\",\n \"dc:format\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\n }\n },\n \"cpf:engine\": {\n \"repo:assetId\": \"urn:aaid:cpf:Service-1538ece812254acaac2a07799503a430\"\n },\n \"cpf:outputs\": {\n \"documentOut\": {\n \"cpf:location\": \"multipartLabelOut\",\n \"dc:format\": \"application/pdf\"\n }\n }\n}");
formdata.append("InputFile0", blob, "fileName");
var requestOptions = {
method: 'POST',
headers: {
"Authorization": authToken,
"Accept": "application/json, text/plain, */*",
"x-api-key": this.clientId
},
body: formdata
};
fetch("https://cpf-ue1.adobe.io/ops/:create?respondWith=%7B%22reltype%22%3A%20%22http%3A%2F%2Fns.adobe.com%2Frel%2Fprimary%22%7D", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
});
}catch(err){
console.log('err in adobeApihit::'+err);
}
}
// for base64 to blob conversion
b64toBlob(b64Data, contentType, sliceSize=512){
const byteCharacters = atob(b64Data);
const byteArrays = [];
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize);
const byteNumbers = new Array(slice.length);
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
const blob = new Blob(byteArrays, {type: contentType});
return blob;
}
adobeApiHIT(文件数据,docMimeType){
试一试{
让authToken='Bearer'+this.accessToken;
const blob=this.b64toBlob(fileData,docMimeType);
var formdata=new formdata();
formdata.append(“contentAnalyzerRequests”,“{\n\”cpf:inputs\”:{\n\“documentIn\”:{\n\“cpf:location\”:“InputFile0\”,\n\“dc:format\”:\“application/vnd.openxmlformats officedocument.wordprocessingml.document\”\n}\n\“cpf:engine\”:{\n\“repo:assetId\”:“urn:aaid:cpf:Service-1538ece812254acaac2a07799503a430 \“\n}、\n \“cpf:outputs\”:{\n \“documentOut\”:{\n \“cpf:location\”:“multipartLabelOut\”,\n \“dc:format\:“application/pdf\”:\n}\n}\n}\n});
append(“InputFile0”,blob,fileName”);
var请求选项={
方法:“POST”,
标题:{
“授权”:authToken,
“接受”:“application/json,text/plain,*/*”,
“x-api-key”:this.clientId
},
正文:formdata
};
取回(“https://cpf-ue1.adobe.io/ops/:create?respondWith=%7B%22reltype%22%3A%20%22http%3A%2F%2Fns.adobe.com%2Frel%2Fprimary%22%7D“,请求选项)
.then(response=>response.text())
.then(result=>console.log(result))
.catch(error=>console.log('error',error));
});
}捕捉(错误){
log('adobeApihit中的错误::'+err);
}
}
//对于base64到blob的转换
b64toBlob(b64Data,contentType,sliceSize=512){
常量ByTechCharacters=atob(B64数据);
常量字节数组=[];
for(让offset=0;offset
提前谢谢