Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Salesforce Mobile SDK for android上传文件?_Android_Salesforce_Salesforce Ios Sdk - Fatal编程技术网

如何使用Salesforce Mobile SDK for android上传文件?

如何使用Salesforce Mobile SDK for android上传文件?,android,salesforce,salesforce-ios-sdk,Android,Salesforce,Salesforce Ios Sdk,我正在本地Android应用程序中使用Salesforce SDK(4.1.x)。我使用RestClient.sendAsync方法将表单数据发布到自定义对象。那部分很好用。现在我需要上传并附上一张手机用户拍摄的照片。我看到RestClient有一个uploadFile方法。这是正确的方法吗?如果是,那么如何将上载的文件连接到自定义表单数据?确定。我明白了。首先,使用以下命令创建父对象(主表单数据) request = RestRequest.getRequestForCreate(apiVer

我正在本地Android应用程序中使用Salesforce SDK(4.1.x)。我使用RestClient.sendAsync方法将表单数据发布到自定义对象。那部分很好用。现在我需要上传并附上一张手机用户拍摄的照片。我看到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() {...
private void postmageasattachment(字符串parentId,字符串title){
映射字段=新的HashMap();
字段。输入(“名称”,标题);
字段。put(“ParentId”,ParentId);
fields.put(“Body”,ImageHelper.getBase64FromImage(mCurrentPhotoPath));
RestRequest请求=null;
试一试{
request=RestRequest.getRequestForCreate(apiVersion,“附件”,字段);
}捕获(例外情况除外){
Log.d(标记“sendRequest:”,ex);
Toast.makeText(MainActivity.this,“文件上载失败:+ex.toString(),Toast.LENGTH_LONG).show();
}
sendAsync(请求,新建RestClient.AsyncRequestCallback(){。。。
我使用了一个名为ImageHelper的简单类,它只加载图像文件,执行图像压缩(如果需要),并对图像数据进行base64编码。结果是创建了一个“附件”对象作为父对象的子对象


我希望这对下一个人有所帮助。

好的。我已经解决了这个问题。首先,使用以下命令创建父对象(主表单数据)

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() {...
private void postmageasattachment(字符串parentId,字符串title){
映射字段=新的HashMap();
字段。输入(“名称”,标题);
字段。put(“ParentId”,ParentId);
fields.put(“Body”,ImageHelper.getBase64FromImage(mCurrentPhotoPath));
RestRequest请求=null;
试一试{
request=RestRequest.getRequestForCreate(apiVersion,“附件”,字段);
}捕获(例外情况除外){
Log.d(标记“sendRequest:”,ex);
Toast.makeText(MainActivity.this,“文件上载失败:+ex.toString(),Toast.LENGTH_LONG).show();
}
sendAsync(请求,新建RestClient.AsyncRequestCallback(){。。。
我使用了一个名为ImageHelper的简单类,它只加载图像文件,执行图像压缩(如果需要),并对图像数据进行base64编码。结果是创建了一个“附件”对象作为父对象的子对象


我希望这对下一个人有所帮助。

Giving BasicNetwork.performRequest:意外响应代码400,因为我今天晚些时候会将其挖掘出来。同时,请确保SF中的对象允许附件。起初,我收到了一个错误,因为我们的对象未设置为允许附件。如果用户不允许附件,也会收到错误对对象/实体拥有适当的权限。我没有在这里使用任何自定义对象。我使用的是Salesforce Chatter API本身。http 400可能有很多含义。您需要调试所有内容。我没有使用Chatter,但似乎记得它的工作原理与我在这里描述的有点不同。Giving BasicNetwork.performRequest:Une预期响应代码400,我将在今天晚些时候对此进行挖掘。同时,请确保SF中的对象允许附件。起初,我收到了一个错误,因为我们的对象未设置为允许附件。如果用户没有对对象/实体的适当权限,也会收到错误。我没有在她身上使用任何自定义对象e、 我使用的是Salesforce Chatter API本身。http 400可能有很多含义。您需要调试所有内容。我没有使用Chatter,但似乎记得它的工作原理与我在这里描述的有点不同。