我正在使用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[]
?
我是编程新手,任何帮助或建议都会有所帮助。
谢谢。
答案 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;
}
或者你也可以检查