我有一个#if MyLibVersion != 1
#error You are including version 1 headers, please set MyLibVersion accordingly.
#endif
到Custom Document Library Action
个文件,当我按下此按钮时会打开一个带有小程序(javascript)的新页面来更改文件,但我正在执行此操作Alfresco
和#34;中出现的修改"在屏幕上用这个:
base64
但我真的需要的是更改文件,因为当存储库再次出现时,必须进行更改,而不仅仅是显示。如何通过更改将现有文件的内容更改为新文件?
我使用此URL来生成文件的GET:
然后我转换为base64 ......然后我做了更改......
但是,如果我想要发布POST以更改内容,我该怎么做呢?
提前致谢。
答案 0 :(得分:3)
正如我在my response中提到this question:
实现这一目标的最快且最简单方式是利用RESTfull API
这也将确保与新版露天的兼容性。
请注意,您需要在表单属性 updatenoderef 中为要更新的文档提供noderef,并且属性 majorversion 是一个布尔标志,用于指定是否为新版本是文档的次要/主要版本。
以下示例代码可以帮助您使用您的用例:
CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost uploadFile = new HttpPost(<alfresco-service-uri>+"/api/upload?alf_ticket="+<al-ticket>); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addTextBody("username", "<username>", ContentType.TEXT_PLAIN); builder.addTextBody("updatenoderef", <noderef>, ContentType.TEXT_PLAIN); builder.addTextBody("...", "...", ContentType.TEXT_PLAIN); builder.addBinaryBody("filedata", <InputStream>, ContentType.DEFAULT_BINARY, <filename>); HttpEntity multipart = builder.build(); uploadFile.setEntity(multipart); CloseableHttpResponse response = httpClient.execute(uploadFile); String responseString = IOUtils.toString(response.getEntity().getContent(), "UTF-8"); JSONObject responseJson = new JSONObject(responseString); if (response.getStatusLine().getStatusCode()!=200){ throw new Exception("Couldn't upload file to the repository, webscript response :" + responseString ); }
注1:您需要更换这些tockens&lt; *&gt;使用您自己的值/ vars
注3:要在JavaScript而不是java中执行此操作,请访问this link并尝试使用js发布我按照指示推荐的参数!
注4:由于您正在进行共享,因此您很可能已通过身份验证。
如果是这种情况,您可以通过共享中的代理端点访问您的露天仓库,并且所有请求都会在转发到您的仓库之前附加身份验证凭证!
换句话说,请使用此端点:
/share/proxy/alfresco/api/upload
而不是:
/alfresco/service/api/upload
并且您甚至不必为您的请求附上票证。
答案 1 :(得分:1)
您需要按照以下步骤来实现您的目标。
1)阅读文件:
要显示已上传的PDF文件的内容,您需要阅读文件内容。您可以使用以下API调用成功完成此操作。
2)捕获新内容:
从applet中捕获用户的新文件内容。我猜你将它存储在一些String变量中。
3)编辑现有文件内容:
这里的问题是你不能简单地使用任何开箱即用的RESTresco REST API编辑任何pdf文件(据我所知)。因此,您需要创建自己的RESTFul API,以编辑pdf文件的内容。您可以考虑使用某些第三方库来完成这项工作。您需要在RESTFul API中插入编辑pdf的逻辑
4)更改回Repo: 从第3步调用您的API:
您还可以查看可以满足您要求的插件。
https://addons.alfresco.com/addons/alfresco-pdf-toolkit
希望这有帮助。