sapui5如何在控制器中读取PDF文件内容

时间:2018-09-05 13:06:50

标签: sapui5

我在PDF文件上传中遇到问题。

enter image description here

在上面的屏幕截图中,如果您看到“尝试上传PDF文件时,我无法读取该pdf文件中的内容”。 我的要求是,我需要从该文件中以 String 的形式获取内容,并且需要将该内容发送到后端服务器。

如果我试图读取内容,我将遇到错误

HTTP状态405-错误的方法 enter image description here

下面是我的代码..

我正在使用 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中的数据吗?

提前谢谢

1 个答案:

答案 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);
    },