4

ファイルの内容をテーブルに格納している SQL Server データベースがあります。具体的には、次の 2 つのフィールドがあります。

  • 内容:varbinary(max)常に「0x1F.....」で始まるフィールド

  • FileType: varchar(5)PDF、docx などのファイルの種類を持つフィールド。

コンテンツをファイルに戻すにはどうすればよいですか? 可能であれば、Coldfusion を使用して変換しようとしています。そうでない場合、バイナリをファイルに変換する手順は何ですか?

次のことを試しましたが (ファイルタイプが docx であると仮定)、有効なワード ファイルが生成されませんでした。

<cfset DecodedValue = BinaryDecode(contents,"hex")>
<cffile action="WRITE" output="#DecodedValue#" file="C:\decodedfile.docx">
4

2 に答える 2

3

ユーザー Ageax のおかげで、31、-117、8、0 の最初の 4 サイズ バイトは、コンテンツが代わりに GZIP 形式で保存されていることを示しています。

最初にコンテンツを gzip として保存してから、ファイルを抽出します。私のコードは次のとおりです。

<cfquery name="getfile" datasource="tempdb">
select content from table
</cfquery>

<cfset FileWrite("C:\mygzipfile.gzip", getfile.content)>

coldfusion を使用して gzip をファイルに抽出するには、http: //coldfusion-tip.blogspot.com/2012/04/unzip-gz-file-in-coldfusion.htmlのソリューションを使用しました。

于 2018-05-25T17:14:26.927 に答える