1

我正在使用文件上传器通过 cmis 连接上传文档。我在 neo 试用帐户中创建了一个目的地。

此外,我正在进行 ajax 调用以将其余数据作为服务上传到文档中。

视图.xml

FileUploader id="fileUploader" name="myFileUpload" uploadUrl="/cmis/4f1abc71a1788bc6c05f54a5/root" width="400px" tooltip="上传你的文件到本地服务器" uploadComplete="handleUploadComplete" change='onChangeDoc'/>

控制器.js

        var BASE64_MARKER = 'data:' + file.type + ';base64,';

        var reader = new FileReader();

        reader.onload = (function(theFile) {

            return function(evt) {

                var base64Index = evt.target.result.indexOf(BASE64_MARKER) + BASE64_MARKER.length;

                var base64 = evt.target.result.substring(base64Index);
        var data = {
            'propertyId[0]': 'cmis:objectTypeId',
            'propertyValue[0]': 'cmis:document',
            'propertyId[1]': 'cmis:name',
            'propertyValue[1]': file.name,
            'cmisaction': 'createDocument',
            'documentInputStream': base64
        };
        var formData = new FormData();

        jQuery.each(data, function(key, value) {
            formData.append(key, value);
        });

        $.ajax({
            type: 'POST',
            url: '/cmis/4f1abc71a1788bc6c05f54a5/root',
            data: formData,
            cache: false,
            contentType: false,
            processData: false,
            success: function(response) {
                sap.m.MessageToast.show("File Uploaded Successfully");
            },
            error: function(error) {
                sap.m.MessageToast.show("File Uploaded Unsuccessfully");
            }
        });

            };

        })(file);

        reader.readAsDataURL(file);

文档已上载,但内容未上载。

错误:

{ 异常:“约束”,消息:“无可用内容:objectid = px7goMt94zMxekyiUqQQBPWQd63-TYivo90adO1Eyxk repositoryid = 4f1abc71a1788bc6c05f54a5”}

任何人都可以在这里帮助我吗?

4

1 回答 1

0

最后我找到了解决这个问题的方法。

在 view.xml 中添加以下行。

<FileUploader id="fileUploader" name="myFileUpload" uploadUrl="/cmis/root"
                width="400px" tooltip="Upload your file to the local server" uploadComplete="handleUploadComplete" change='onChangeDoc'/>

上传 url 将是 neo 目标的 url。在 neo.app.json 中添加以下行。

{
  "path": "/cmis",
  "target": {
    "type": "destination",
    "name": "documentservice"
  },
  "description": "documentservice"
}

在 controller.js 中添加以下代码行。

    if (!oFileUploader.getValue()) {
        sap.m.MessageToast.show("Choose a file first");
        return;
    }

    var data = {
        'propertyId[0]': 'cmis:objectTypeId',
        'propertyValue[0]': 'cmis:document',
        'propertyId[1]': 'cmis:name',
        'propertyValue[1]': file.name,
        'cmisaction': 'createDocument'

    };
    var formData = new FormData();
    formData.append('datafile', new Blob([file]));
    jQuery.each(data, function(key, value) {
        formData.append(key, value);
    });

    $.ajax('/cmis/root', {
        type: 'POST',
        data: formData,
        cache: false,
        processData: false,
        contentType: false,
        success: function(response) {
            sap.m.MessageToast.show("File Uploaded Successfully");              
        }.bind(this),
        error: function(error) {
            sap.m.MessageBox.error("File Uploaded Unsuccessfully. Save is not possible. " + error.responseJSON.message);
        }
    });

在 Neo 云中,在目标选项卡中维护以下配置的 url。

https://testdaasi328160trial.hanatrial.ondemand.com/TestDaaS/cmis/json/repo-id

repo-id 将是您的存储库密钥。

这将解决问题。你将能够上传和文件。

问候,帕万。

于 2018-01-10T10:16:05.283 回答