Docusign API为信封中的文档获取byte []

时间:2018-05-23 22:34:40

标签: c# rest model-view-controller docusignapi

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

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

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

我想获取文档的byte[]值,以便我可以将其保存到db中的BLOB。

有没有办法调用此Docusign API来获取byte[]? 我是编程新手,任何帮助或建议都会有所帮助。

谢谢。

1 个答案:

答案 0 :(得分:2)

代码应如下所示:

// GetDocument() API call returns a MemoryStream

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

上述方法使用DocuSign's 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;
    }

或者你也可以检查

How to Store and Read Byte Array2579373