在Alfresco Community 5.2上使用自定义网页脚本上传文件大小限制

时间:2019-10-15 13:27:10

标签: alfresco alfresco-share alfresco-webscripts

我需要帮助,通过共享JavaScript将文档内容上传回Alfresco Community 5.2。 目标noderef已经存在,我上传了文档的新版本。

我无法使用api/upload Web服务,因为我还需要在noderef上执行一些操作,并且该文件的base64内容需要转换。

所以我写了一个新的Web脚本,并且至少在上传小于3MB的文档时,一切正常,

这是代码

 Alfresco.util.Ajax.request({
        method: Alfresco.util.Ajax.POST,
        dataObj: {
            bytes: response.bytes,
            digestAlgorithm: response.digestAlgorithm,
            mimeType: response.mimeType.mimeTypeString,
            name: response.name,
            nodeRef: this.nodeRef,
            signatureLevel: this.signatureLevel
        },
        url: thisClass.urlAlfrescoService + "myOrg/myPackage/uploadDocument",

        successCallback: {
            fn: thisClass._successOnUploadContent,
            scope: this
        },

        failureCallback: {
            fn: thisClass._errorOnUploadContent,
            scope: this
        },

        scope: this,
        noReloadOnAuthFailure: true
    });

我是否错过增加最大上传文件大小的选项? 我尝试正常上传文件(通过拖放操作),并且可以正常工作。

问题是当文件> = 3MB时,网页脚本后面的Java类没有收到任何字节

更新

经过一些研究,我发现这可能是如何通过POST传递数据的问题,因为它是application / x-www-form-urlencoded而不是multipart / form-data的,但是我找不到一种方法来指定ajax请求中的请求内容类型

解决方案

问题是应用程序/ x-www-form-urlencoded而不是multipart / form-data,我使用了here中所述的访存POST请求,但是ajax请求解决方案还是不错的。

1 个答案:

答案 0 :(得分:1)

上周,我对Alfresco 5.0.2.5的Alfresco AJAX请求也遇到了同样非常相似的问题,我使用了jquery的AJAX调用,并且对我有用。

 $.ajax({
        url: Alfresco.constants.PROXY_URI + "your_web_script",
        type: "POST",
        data: dataFromFiles,
        mimeType: "multipart/form-data",
        contentType: false,
        cache: false,
        processData: false,
        dataType: "text",
        success: function(data, textStatus, jqXHR) {

        },
        error: function(jqXHR, textStatus, errorThrown) {

        }
    });

参考链接:https://blog.arvixe.com/sending-multipart-form-using-ajax/

希望这对您有所帮助。