我需要帮助,通过共享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请求解决方案还是不错的。>
答案 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/
希望这对您有所帮助。