首页 > 解决方案 > Docusign API 为信封中的文档获取字节 []

问题描述

我正在使用 Docusign API 使用 c# 开发 MVC Web 应用程序。这是 Docusign 提供的 REST API。

GET /v2/accounts/{accountId}/envelopes/{envelopeId}/documents/{documentId}

当我调用这个 HTTP 请求时,Windows 会弹出并要求用户选择文件夹并设置文件名以将文档保存为 PDF 格式。

我想获得byte[]文档的价值,以便可以将其保存到数据库中的 BLOB。

有什么方法可以调用这个 Docusign API 来获取byte[]?我是编程新手,任何帮助或建议都会有所帮助。

谢谢你。

标签: c#restmodel-view-controllerdocusignapi

解决方案


代码应如下所示:

// GetDocument() API call returns a MemoryStream

MemoryStream docStream = (MemoryStream)envelopesApi.GetDocument(accountId, envelopeId, documentId);

以上方法使用DocuSign的C# SDK,检查LegacyListDocumentsAndDownloadTest方法。

将 MemoryStream 写入数据库:

public static int databaseFilePut(MemoryStream fileToPut) {
        int varID = 0;
        byte[] file = fileToPut.ToArray();
        const string preparedCommand = @"
                    INSERT INTO [dbo].[Raporty]
                               ([RaportPlik])
                         VALUES
                               (@File)
                        SELECT [RaportID] FROM [dbo].[Raporty]
            WHERE [RaportID] = SCOPE_IDENTITY()
                    ";
        using (var varConnection = Locale.sqlConnectOneTime(Locale.sqlDataConnectionDetails))
        using (var sqlWrite = new SqlCommand(preparedCommand, varConnection)) {
            sqlWrite.Parameters.Add("@File", SqlDbType.VarBinary, file.Length).Value = file;

            using (var sqlWriteQuery = sqlWrite.ExecuteReader())
                while (sqlWriteQuery != null && sqlWriteQuery.Read()) {
                    varID = sqlWriteQuery["RaportID"] is int ? (int) sqlWriteQuery["RaportID"] : 0;
                }
        }
        return varID;
    }

或者你也可以检查

如何存储和读取字节数组2579373


推荐阅读