首页 > 解决方案 > 从sql存储过程下载原始pdf文件时如何处理pdf?

问题描述

我可以从存储过程中下载小的纯文本 pdf 文件,但复杂的 pdf 文件看起来会被截断。我正在将 resultText 读入一个 varchar(max) 的表中,所以不确定为什么大文件被截断。有没有解决的办法?

MSSQL 存储过程调用 URL 下载 pdf,@WorkingURI 是 2 页的 pdf 文件,但体积很小。@NotWorkingURI 被切断。

declare
@WorkingURI      varchar(100),
@NotWorkingURI   varchar(100)

CREATE TABLE #ResponseMax
(
    MaxString           VARCHAR(MAX)
)

SET @WorkingURI = 'http://www.africau.edu/images/default/sample.pdf'
SET @NotWorkingURI = 'http://www.pdf995.com/samples/pdf.pdf'

EXEC @hResult = sp_OAMethod @objectID, 'open', null, 'GET', @NotWorkingURI,'false', NULL, NULL

EXEC @hResult = sp_OAMethod @objectID, 'setRequestHeader', null, 'Content-Type', 'text/xml'

-- send the request 

EXEC @hResult = sp_OAMethod @objectID, 'send', null, '' 

declare @statusText varchar(1000), @status varchar(1000) 

-- Get status text

exec sp_OAGetProperty @objectID, 'StatusText', @statusText out
exec sp_OAGetProperty @objectID, 'Status', @status out

select @status, @statusText

INSERT INTO #ResponseMax ( MaxString ) 
exec sp_OAGetProperty @objectID, 'responseText'

select *
from #ResponseMax

根据 pdf 文件,有时我会得到完整的 pdf,并在 responseText 的末尾加上“%%EOF”,有时我会得到一个看起来像是被类似于二进制字符串的特殊字符截断的字符串(但不完整)。它似乎与文件的大小有关。

标签: sql-serverhttppdfstored-proceduresencoding

解决方案


推荐阅读