如何使用 Salesforce Mobile SDK 为 android 上传文件?
How do I upload file using Salesforce Mobile SDK for android?
我在本机 Android 应用程序中使用 Salesforce SDK (4.1.x)。我使用 RestClient.sendAsync 方法将我的表单数据 post 到自定义对象。那部分工作正常。现在我需要上传并附上移动用户拍摄的照片。我看到 RestClient 有一个 uploadFile 方法。这是正确的方法吗?如果是,那么如何将上传的文件连接到自定义表单数据?
好的。我想通了。首先,使用以下内容创建父对象(主窗体数据)。
request = RestRequest.getRequestForCreate(apiVersion, objectType, fields);
client.sendAsync(restRequest, new RestClient.AsyncRequestCallback() {...
在 onSuccess 方法中,您将从响应中获取新对象的 ID。有很多示例展示了如何获取 JSON 对象和 id。有了这个 parentId,我们现在可以创建附件了。代码看起来像这样。
private void postImageAsAttachment(String parentId, String title) {
Map<String, Object> fields = new HashMap<String, Object>();
fields.put("Name", title);
fields.put("ParentId", parentId);
fields.put("Body", ImageHelper.getBase64FromImage(mCurrentPhotoPath));
RestRequest request = null;
try {
request = RestRequest.getRequestForCreate(apiVersion, "Attachment", fields);
} catch (Exception ex) {
Log.d(TAG, "sendRequest: ", ex);
Toast.makeText(MainActivity.this, "The file upload failed: " + ex.toString(), Toast.LENGTH_LONG).show();
}
client.sendAsync(request, new RestClient.AsyncRequestCallback() {...
我正在使用一个名为 ImageHelper 的简单 class,它只加载图像文件,执行图像压缩(如有必要),并对图像数据进行 base64 编码。结果是创建了一个 "Attachment" 对象作为父对象的子对象。
我希望这对下一个人有帮助。
我在本机 Android 应用程序中使用 Salesforce SDK (4.1.x)。我使用 RestClient.sendAsync 方法将我的表单数据 post 到自定义对象。那部分工作正常。现在我需要上传并附上移动用户拍摄的照片。我看到 RestClient 有一个 uploadFile 方法。这是正确的方法吗?如果是,那么如何将上传的文件连接到自定义表单数据?
好的。我想通了。首先,使用以下内容创建父对象(主窗体数据)。
request = RestRequest.getRequestForCreate(apiVersion, objectType, fields);
client.sendAsync(restRequest, new RestClient.AsyncRequestCallback() {...
在 onSuccess 方法中,您将从响应中获取新对象的 ID。有很多示例展示了如何获取 JSON 对象和 id。有了这个 parentId,我们现在可以创建附件了。代码看起来像这样。
private void postImageAsAttachment(String parentId, String title) {
Map<String, Object> fields = new HashMap<String, Object>();
fields.put("Name", title);
fields.put("ParentId", parentId);
fields.put("Body", ImageHelper.getBase64FromImage(mCurrentPhotoPath));
RestRequest request = null;
try {
request = RestRequest.getRequestForCreate(apiVersion, "Attachment", fields);
} catch (Exception ex) {
Log.d(TAG, "sendRequest: ", ex);
Toast.makeText(MainActivity.this, "The file upload failed: " + ex.toString(), Toast.LENGTH_LONG).show();
}
client.sendAsync(request, new RestClient.AsyncRequestCallback() {...
我正在使用一个名为 ImageHelper 的简单 class,它只加载图像文件,执行图像压缩(如有必要),并对图像数据进行 base64 编码。结果是创建了一个 "Attachment" 对象作为父对象的子对象。
我希望这对下一个人有帮助。