在BIMFACE控制台上传文件,上传过程及结束后它会自动告诉你文件的上传状态,目前有三种状态:uploading,success,failure。即上传中、上传成功、上传失败。

如果是通过调用服务接口来上传文件,上传结束后也可以再调用BIMFACE提供的“获取文件上传状态信息”接口来查询状态。

下面详细介绍如何获取文件上传状态信息。

请求地址:GET https://file.bimface.com/files/{fileId}/uploadStatus

说明:根据文件ID获取文件上传状态信息

参数:

请求 path(示例):https://file.bimface.com/files/1419273043501216/uploadStatus

请求 header(示例):"Authorization: Bearer dc671840-bacc-4dc5-a134-97c1918d664b"

HTTP响应示例(200):

{
"code" : "success",
"data" : {
"failedReason" : "input.stream.read.error", // 上传失败的远因。如果上传成功,则为空。
"fileId" : , // 文件ID
"name" : "-1F.rvt", // 文件名称
"status" : "failure" // 文件上传状态
},
"message" : ""
}

C#实现方法:

 /// <summary>
/// 获取文件上传状态信息
/// </summary>
/// <param name="accessToken">令牌</param>
/// <param name="fileId">文件ID</param>
/// <returns></returns>
public virtual FileUploadStatusResponse GetFileUploadStatus(string accessToken, string fileId)
{
//GET https://file.bimface.com/files/{fileId}/uploadStatus
string url = string.Format(BimfaceConstants.FILE_HOST + "/files/{0}/uploadStatus", fileId); BimFaceHttpHeaders headers = new BimFaceHttpHeaders();
headers.AddOAuth2Header(accessToken); try
{
FileUploadStatusResponse response; HttpManager httpManager = new HttpManager(headers);
HttpResult httpResult = httpManager.Get(url);
if (httpResult.Status == HttpResult.STATUS_SUCCESS)
{
response = httpResult.Text.DeserializeJsonToObject<FileUploadStatusResponse>();
}
else
{
response = new FileUploadStatusResponse
{
Message = httpResult.RefText
};
} return response;
}
catch (Exception ex)
{
throw new Exception("[获取文件上传状态信息]发生异常!", ex);
}
}
其中引用的 httpManager.Get() 方法,请参考《C#开发BIMFACE系列6 服务端API之获取文件信息》,方法完全一样。
测试
 在BIMFACE的控制台中可以看到我们上传的文件列表

选择任意一个文件的ID来做测试

可以看到获取文件上传状态信息成功,返回了以下信息:失败原因、文件编号、文件的名称、文件的上传状态。

测试程序如下:

// 获取文件上传状态信息
protected void btnGetFileUploadStatus_Click(object sender, EventArgs e)
{
txtFileInfo.Text = string.Empty; string token = txtAccessToken.Text;
string fileId = txtFileId.Text; FileApi api = new FileApi();
FileUploadStatusResponse response = api.GetFileUploadStatus(token, fileId); txtFileInfo.Text = response.Code
+ Environment.NewLine
+ response.Message
+ Environment.NewLine
+ response.Data.ToString();
}

C#开发BIMFACE系列8 服务端API之获取文件上传状态信息的更多相关文章

  1. C#开发BIMFACE系列7 服务端API之获取文件信息列表

    系列目录     [已更新最新开发文章,点击查看详细] 本文详细介绍如何获取BIMFACE平台中所有上传过的文件信息列表. 请求地址:GET https://file.bimface.com/file ...

  2. C#开发BIMFACE系列6 服务端API之获取文件信息

    在<C#开发BIMFACE系列4 服务端API之源上传文件>.<C#开发BIMFACE系列5 服务端API之文件直传>两篇文章中详细介绍了如何将本地文件上传到BIMFACE服务 ...

  3. C#开发BIMFACE系列9 服务端API之获取应用支持的文件类型

    系列目录     [已更新最新开发文章,点击查看详细] BIMFACE最核心能力之一是工程文件格式转换.无需安装插件,支持数十种工程文件格式在云端转换,完整保留原始文件信息.开发者将告别原始文件解析烦 ...

  4. C#开发BIMFACE系列10 服务端API之获取文件下载链接

    系列目录     [已更新最新开发文章,点击查看详细] 通过BIMFACE控制台或者调用服务接口上传文件成功后,默认场景下需要下载该源文件,下载文件一般需要知道文件的下载链接即可.BIMACE平台提供 ...

  5. C#开发BIMFACE系列3 服务端API之获取应用访问凭证AccessToken

    系列目录     [已更新最新开发文章,点击查看详细] BIMFACE 平台为开发者提供了大量的服务器端 API 与 JavaScript API,用于二次开发 BIM 的相关应用. BIMFACE ...

  6. C#开发BIMFACE系列17 服务端API之获取模型数据2:获取构件材质列表

    系列目录     [已更新最新开发文章,点击查看详细] 在上一篇<C#开发BIMFACE系列16 服务端API之获取模型数据1:查询满足条件的构件ID列表>中介绍了获取单文件(模型)的所有 ...

  7. C#开发BIMFACE系列18 服务端API之获取模型数据3:获取构件属性

    系列目录     [已更新最新开发文章,点击查看详细] 本篇主要介绍如何获取单文件/模型下单个构建的属性信息. 请求地址:GET https://api.bimface.com/data/v2/fil ...

  8. C#开发BIMFACE系列19 服务端API之获取模型数据4:获取多个构件的共同属性

    系列目录     [已更新最新开发文章,点击查看详细] 在前几篇博客中介绍了一个三维文件/模型包含多个构建,每个构建又是由多种材质组成,每个构建都有很多属性.不同的构建也有可能包含相同的属性. 上图中 ...

  9. C#开发BIMFACE系列21 服务端API之获取模型数据6:获取单模型的楼层信息

    系列目录     [已更新最新开发文章,点击查看详细] 一个文件/模型中可能包含多个楼层信息,获取楼层信息对于前端页面的动态展示非常有帮助.本篇介绍获取一个文件/模型中可能包含多个楼层信息的详细方法. ...

随机推荐

  1. Oracle 统计信息介绍

      统计信息自动执行需要以下条件满足: dba_autotask_task 字段status值ENABLED dba_autotask_client 字段status值ENABLED dba_auto ...

  2. IO流1

    一.I/0:input/output1.java.io.file表示:文件或文件夹(目录)File f = new File("文件路径");注意:相对路径:非web项目的相对都是 ...

  3. backtracing

    5月10日 1 37  Sudoku Slover public void solveSudoku(char[][] board) { if(board == null || board.length ...

  4. Appium+python自动化(二十五)- 那些让人抓耳挠腮、揪头发和掉头发的事 - 获取控件ID(超详解)

    简介 在前边的第二十二篇文章里,已经分享了通过获取控件的坐标点来获取点击事件的所需要的点击位置,那么还有没有其他方法来获取控件点击事件所需要的点击位置呢?答案是:Yes!因为在不同的大小屏幕的手机上获 ...

  5. 【iOS】创建真机调试证书

    今天第一次完整的在一个开发者账号里添加证书,刚接触,还真有些不熟悉,还好找到了一篇不错的文章:iOS开发:创建真机调试证书 ,做了很详细的介绍. 分享一下!!

  6. Codeforces Round #192 (Div. 2) (330A) A. Cakeminator

    题意: 如果某一行没有草莓,就可以吃掉这一行,某一列没有也可以吃点这一列,求最多会被吃掉多少块蛋糕. //cf 192 div2 #include <stdio.h> #include & ...

  7. 学习vue感触

    大学还没毕业,想着先找工作,感觉计算机专业在老家做没有太大的发展,于是就在大学所在城市找了份工作.来到公司的第一天,带我的师傅让我学习vue.之前完全没有接触过框架,而且专业知识比较薄弱,前几天一直处 ...

  8. Java中...的作用

    Java中...的作用,代表接收若干个相同类型的参数 public void testFunction(int...arr){    //接收若干个int类型的参数     for (int i:ar ...

  9. 使用re.split 按标点+空格的一种分割办法

    import re import string t1 = re.split("["+string.punctuation+" ]","(555) 12 ...

  10. Angular生命周期理解

    Angular每个组件,包含根组件和每一级的子组件,都存在一个生命周期,从创建,变更到销毁.Angular提供组件生命周期钩子,把这些关键时刻暴露出来,赋予在这些关键结点和组件进行交互的能力. 在An ...