我有一个网页的代码,用于从相机或文件系统上传图像,然后在将其作为JSON请求发送之前将其转换为字符串。:
var fileToLoad = new Blob([images[0]], {
type: 'image/tif'
});+
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
var srcData = fileLoadedEvent.target.result; // <--- data: base64
var divTest = document.getElementById("imgTest");
var newImage = document.createElement('img');
newImage.src = srcData;
imageString = newImage.outerHTML;
//<img src="data:image/tif;base64,SUkqAAgAAAATAP4ABAABAAAAAAAAAAABBAABAAAAsAQAAAEBBAABA…71sXFsbHw8F/BP6Hr9+JZlWf//+1UVYRmCIUOFbllbXhaaSzELdERERERERET8//////8/AAIg">
imageString = imageString.substring(32, imageString.length-2); //The above returns a string for <img src.......>. So this line removes the html stuff to leave just the image string
console.log(imageString);
var testJSON =
{
"jobWithDocsInitialization": {
"InputVariables": [{
"Id": "InputVar",
"Value": "Conor"
}],
"RuntimeDocumentCollection": [{
"Base64Data": null,
"Data": null,
"DeleteDocument": true,
"DocumentGroup": {
"Id": null,
"Name": "",
"Version": 0
},
"DocumentName": "",
"DocumentTypeId": null,
"FieldsToReturn": null,
"FilePath": null,
"FolderId": null,
"FolderTypeId": null,
"MimeType": null,
"PageDataList": [{
"Data": null,
"Base64Data": imageString,
"MimeType": "image/tiff",
"RuntimeFields": {}
}],
"PageImageDataCollection": null,
"ReturnAllFields": true,
"RuntimeFields": null
}],
"StartDate": null
},
"processIdentity": {
"Id": null,
"Name": "DriversLicRTTI",
"Version": 10
},
"sessionId": "C640521793431F4486D4EF1586672385",
"variablesToReturn": {"id":"loopIndex"}
};
ajax.send(JSON.stringify(testJSON));
}
fileReader.readAsDataURL(fileToLoad);
选择图像时将调用上面的代码。在将所选图像发送到JSON请求之前,它会将所选图像更改为字符串。它应该能够在桌面或移动设备上的Web浏览器上运行。它在桌面上完美运行。我可以将我上传的图像转换为字符串并将其发送到我的服务器没问题。
然而,当我在手机上执行相同操作时,我收到一条错误消息,指出处理请求中的错误:未定义。
如果没有Chrome调试器,这是一个巨大的帮助,以及机器上的Fiddler之类的东西,有没有办法找出可能出错的地方?我真的不知道如何在手机上攻击这个问题。
答案 0 :(得分:1)
根据Jan对我的问题的回复,我的Android手机的Chrome调试程序运行良好。马上解决了我的问题。