我想通过我的Android应用上传到Alfresco。我发现了这个api:
The following web script uploads file content and metadata into the repository.
POST /alfresco/service/api/upload
The web script uses the following HTML form data:
filedata - (mandatory) HTML type file
siteid
containerid
uploaddirectory
updatenoderef
filename
description
contenttype
majorversion
overwrite
thumbnails
The returned content is:
nodeRef
It returns a status: STATUS_OK (200).
The web script description document specifies the following options:
Value Description
user The authentication access
required The transaction level
any The format style
json The default response format
但我不知道
我的文件路径在哪里?
filedata - (mandatory) HTML type file
:HTML类型文件的格式是什么,这是什么?
那么其他参数呢?
感谢您的阅读
答案 0 :(得分:2)
首先,我假设您正在使用HTTP客户端库进行POST调用,并且该库能够以multipart/form-data
格式编码POST主体,简称为“Multipart”。
filedata
参数应包含正在上载的文件的内容和名称(在您的文件系统上)。这是多部分编码的优势,如果您只是将参数传递给文件并告诉它使用multipart/form-data
格式,您的HTTP库应该知道如何对参数进行编码。
其他参数只是字符串值,因此应该更容易设置。这方面的文档并不是很好,但从参数名称中可以明显看出它们的作用。
您可以尝试使用Curl从本地计算机上运行上传过程,然后确定如何在您的应用中应用类似的过程,例如
curl -H "Content-type: application/json" --data '{ "username": "admin", "password": "admin" }' http://localhost:8080/alfresco/service/api/login
从输出中获取登录票证,然后将名为test.png的测试文件从本地文件系统上传到URL名称为willtest
的站点,
curl -F 'filedata=@test.png' -F 'siteid=willtest' -F 'containerid=documentLibrary' http://localhost:8080/alfresco/service/api/upload?alf_ticket=TICKET_blah
然后最后退出
curl -X DELETE 'http://localhost:8080/alfresco/service/api/login/ticket/TICKET_blah?alf_ticket=blah'
最后但重要的一点:Android的完整移动SDK正在由Alfresco开发,将在今年晚些时候发布。如果您打算做一些比简单上传文件更复杂的事情,您可能希望在它可用时查看它。
答案 1 :(得分:0)
为了能够从Android应用程序上传文件并使用Multipart内容类型,我需要在我的应用程序中添加一些额外的jar文件。
apache-mime4j, httpclient, httpcore and httpmime
使用HttpPost发布参数