0

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

しかし、私は知りません

  1. 私のファイルパスはどこにありますか?

  2. filedata - (mandatory) HTML type file:HTMLタイプのファイルの形式は何ですか、これは何ですか?

  3. そして、他のパラメータはどうですか?

読んでくれてありがとう

4

2 に答える 2

2

まず、HTTPクライアントライブラリを使用してそのPOST呼び出しを行っており、そのライブラリがPOST本文をmultipart/form-data単に「マルチパート」と呼ばれる形式でエンコードできることを前提としています。

filedataパラメータには、アップロードするファイルのコンテンツと名前(ファイルシステム上)の両方が含まれている必要があります。これはマルチパートエンコーディングの利点であり、HTTPライブラリは、ファイルへの参照を渡してフォーマットを使用するように指示するだけで、パラメータをエンコードする方法を知っている必要がありますmultipart/form-data

他のパラメータは単なる文字列値であるため、より簡単に設定する必要があります。この分野のドキュメントは素晴らしいものではありませんが、一般的なパラメータ名から、それらが何をするのかは明らかです。

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によって開発中です。単にファイルをアップロードするよりも複雑なことを行う場合は、ファイルが利用可能になったときにそれを確認することをお勧めします。

于 2012-08-09T08:24:11.957 に答える
0

Androidアプリケーションからファイルをアップロードしてマルチパートコンテンツタイプを使用できるようにするには、アプリケーションにjarファイルを追加する必要があります。

apache-mime4j, httpclient, httpcore and httpmime

そして、HttpPostを使用してパラメータを投稿します

于 2012-08-05T13:58:43.897 に答える