我在PDF文件上传中遇到问题。
在上面的屏幕截图中,如果您看到“尝试上传PDF文件时,我无法读取该pdf文件中的内容”。 我的要求是,我需要从该文件中以 String 的形式获取内容,并且需要将该内容发送到后端服务器。
如果我试图读取内容,我将遇到错误
下面是我的代码..
我正在使用 xmlns:u =“ sap.ui.unified” 库
<u:FileUploader id="fileUploader" name="myFileUpload" tooltip="Upload Service Sheet"
uploadComplete="handleUploadComplete" change="handleValueChange" typeMissmatch="handleTypeMissmatch" style="Emphasized" fileType="pdf"
placeholder="Choose a file for Upload..." maximumFileSize="2000" mimeType="pdf" buttonText="Upload">
</u:FileUploader>
handleUploadComplete: function(oEvent) {
var fileName = oEvent.getSource().getProperty("value");
var sResponse = oEvent.getParameter("response");
if (sResponse) {
var sMsg = "";
var m = /^\[(\d\d\d)\]:(.*)$/.exec(sResponse);
if (m[0] == "200") {
sMsg = "Return Code: " + m[0] + "(Upload Success)";
oEvent.getSource().setValue("");
} else {
sMsg = "Return Code: " + m[0] + "(Upload Error)";
}
MessageToast.show(sMsg);
}
},
有人可以帮助我如何读取PDF中的数据吗?
提前谢谢
答案 0 :(得分:6)
看看这个例子。希望这会有所帮助。
查看
<u:FileUploader change="onChange" fileType="pdf" mimeType="pdf" buttonText="Upload" />
控制器
convertBinaryToHex: function(buffer) {
return Array.prototype.map.call(new Uint8Array(buffer), function(x) {
return ("00" + x.toString(16)).slice(-2);
}).join("");
},
onChange: function(oEvent){
var that = this;
var reader = new FileReader();
var file = oEvent.getParameter("files")[0];
reader.onload = function(e) {
var raw = e.target.result;
var hexString = that.convertBinaryToHex(raw).toUpperCase();
// DO YOUR THING HERE
};
reader.onerror = function() {
sap.m.MessageToast.show("Error occured when uploading file");
};
reader.readAsArrayBuffer(file);
},