0

SalesforceMobileSDK-Androidを使用して Android アプリケーションを開発しています。私は非常に基本的な Android アプリケーションを開発することができます。私のアプリケーションでは、セールスフォース アカウントから連絡先、アカウント、リードなどの詳細を取得し、これらのデータに対して crud 操作を実行できます。私のAndroidアプリケーションには、uploadFileというボタンがあり、そのボタンをクリックしてオーディオファイルをアップロードしたいのですが、AndroidクライアントアプリケーションからSalesforceにアップロードするのに役立つ残りのAPIが見つかりません。

サンプルの URL やソース コード、または役立つリソースがあれば提供してください。

ありがとう

4

2 に答える 2

1

base64ファイルのエンコードとエンドポイントPOSTへのリクエストの送信を試す必要があります。/services/data/v26.0/sobjects/attachment/{parent record id}/body私は自分でそれを行ったことはありませんが、いくつかの良い例があります:

  1. http://www.salesforce.com/us/developer/docs/api_rest/Content/dome_sobject_insert_update_blob.htm - json メッセージで別のアプローチを使用します。
  2. http://blogs.developerforce.com/developer-relations/2011/09/using-binary-data-with-rest.html - サーバー側の REST サービスを作成できる場合。
  3. https://salesforce.stackexchange.com/questions/1301/image-upload-to-chatter-postなど、Salesforce 専用のスタック サイトでリソースを確認します。
  4. 最後になりましたが、Salesforce コミュニティ ボードを確認してください
于 2012-12-13T13:16:55.747 に答える
0

ファイルをアップロードするときに気にする必要があるのは主にサーバー側であり、クライアント側では次のようなアプローチをとることができます(アイデアを得るだけで、完全に機能するコードではありません):

 FileInputStream fileInputStream = new FileInputStream(new File(selectedPath) );
 // open a URL connection to the Servlet
 URL url = new URL(urlString);
 // Open a HTTP connection to the URL
 conn = (HttpURLConnection) url.openConnection();
 // Allow Inputs
 conn.setDoInput(true);
 // Allow Outputs
 conn.setDoOutput(true);
 // Don't use a cached copy.
 conn.setUseCaches(false);
 // Use a post method.
 conn.setRequestMethod("POST");
 conn.setRequestProperty("Connection", "Keep-Alive");
 conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);
 dos = new DataOutputStream( conn.getOutputStream() );
 dos.writeBytes(twoHyphens + boundary + lineEnd);
 dos.writeBytes("Content-Disposition: form-data; name:\"uploadedfile\";filename=\"" + selectedPath + "\"" + lineEnd);
 dos.writeBytes(lineEnd);
 // create a buffer of maximum size
 bytesAvailable = fileInputStream.available();
 bufferSize = Math.min(bytesAvailable, maxBufferSize);
 buffer = new byte[bufferSize];
 // read file and write it into form...
 bytesRead = fileInputStream.read(buffer, 0, bufferSize);
 while (bytesRead > 0)
 {
  dos.write(buffer, 0, bufferSize);
  bytesAvailable = fileInputStream.available();
  bufferSize = Math.min(bytesAvailable, maxBufferSize);
  bytesRead = fileInputStream.read(buffer, 0, bufferSize);
 }
 // send multipart form data necesssary after file data...
 dos.writeBytes(lineEnd);
 dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
 // close streams
 Log.e("Debug","File is written");
 fileInputStream.close();
 dos.flush();
 dos.close();
于 2012-12-12T12:04:43.063 に答える